ftp文件操作

2023-05-16

FTP中的文件操作

如何对ftp文件系统进行操作


文章目录

  • FTP中的文件操作
  • 前言
  • 一、ftp是什么?
  • 二、使用步骤
    • 1.本地创建搭建ftp系统
    • 2.操作
  • 总结


前言

公司中运用到了ftp小文件系统,自己在本地学习了一下网上的操作步骤进行操作。


一、ftp是什么?

FTP是文件传输协议的英文简称,是一种客户端/服务器协议。用于Internet上的控制文件的双向传输。

二、使用步骤

1.本地创建搭建ftp系统

如何搭建

2.操作

操作前需要知道ftp的信息:ip,端口,用户名,密码;
初始化连接->操作->关闭连接

代码如下():

package com.example.ftptest.ftpfunction;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

import java.io.*;

public class Ftp {
    private static FTPClient ftpClient;

    private static String ip = "192.168.77.1";

    private static Integer port = 21;

    private static String userName = "2793887237@qq.com";

    private static String passWord = "yeb001212";

    /**
     * 初始化ftp连接
     * @return
     * @throws Exception
     */
    public static boolean initFtpClient() throws Exception {
        boolean is_success = false;
        int reply;
        ftpClient = new FTPClient();

        ftpClient.connect(ip, port);
        ftpClient.login(userName, passWord);
        ftpClient.setControlEncoding("utf-8");
        //状态码
        reply = ftpClient.getReplyCode();
        System.out.println(ftpClient.getReplyString());
        if (!FTPReply.isPositiveCompletion(reply)) {
            throw new Exception("服务器连接失败");
        } else {
            ftpClient.enterLocalPassiveMode();
            ftpClient.setControlEncoding("GBK");
            is_success = true;
        }
        return is_success;
    }

    /**
     * 关闭ftp连接
     */
    public static void dropFtpClient() {
        try {
            ftpClient.logout();
            if (ftpClient.isConnected()) {
                ftpClient.disconnect();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 上传ftp文件
     * @param pathname  ftp服务保存地址
     * @param originFileName 待上传文件的名称(绝对地址)
     */
    public static boolean uploadFile(String pathname, String originFileName) {
        boolean is_success = false;
        try {
            InputStream inputStream = null;
            File load = new File(originFileName);
            inputStream = new FileInputStream(load);
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
            ftpClient.changeWorkingDirectory(pathname);
            is_success = ftpClient.storeFile(load.getName(), inputStream);
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return is_success;
    }

    /*
     * 下载文件
     *
     * @param pathName  ftp服务器文件目录
     * @param localPath 下载后的文件路径 *
     * @return
     */
    public static boolean downloadFile(String pathName, String localPath) {
        boolean is_success = false;
        OutputStream os = null;
        try {
            ftpClient.changeWorkingDirectory(pathName);//跳转到指定的Ftp文件目录
            FTPFile[] ftpFiles = ftpClient.listFiles();//获取目录下所有的文件和文件夹
            //遍历目录下所有的文件
            for (FTPFile file : ftpFiles) {
                if (file.isFile()) {
                    File localFile = new File(localPath + "/" + file.getName());
                    os = new FileOutputStream(localFile);
                    ftpClient.retrieveFile(file.getName(), os);//下载文件到本地
                    os.close();
                } else if (file.isDirectory()) {
                    downloadFile(pathName + file.getName() + "/", localPath);
                }
            }
            is_success = true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return is_success;
    }

    public static void main(String[] args) throws Exception {
        boolean is_success = false;
        is_success = initFtpClient();
        System.out.println(is_success);
        is_success = uploadFile("/", "C:\\Users\\27938\\Desktop\\08a7-a3a15703ead7f75c92328ac08aeb080e.gif");
        System.out.println(is_success);
        dropFtpClient();
    }


}

总结

继续加油吧

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ftp文件操作 的相关文章

  • 从 FTP 流式传输文件并让用户同时下载

    我正在创建一个备份系统 其中备份将自动生成 因此我将把备份存储在不同的服务器上 但是当我想下载它们时 我希望链接是一次性链接 这并不难但是 为了确保安全 我正在考虑存储这些文件 以便它们无法通过其他服务器上的 http 访问 所以我要做的是
  • PHP curl FTPes w/显式 TLS/SSL

    我一直在尝试使用显式 TLS SSL 服务器推送到远程 FTP 但连接始终超时 它正在连接 但我不知道它在哪里停止 但我假设它与 FTP TLS SSL 控制通道有关 任何帮助将不胜感激 通过 FileZilla 我可以毫无问题地进行连接
  • 如何使用 FTP 获取基于模式匹配的文件列表?

    我需要从 FTP 服务器获取文件列表 FTP 服务器有超过 10 000 个文件 我只需要以以下开头的文件ABC 相当于 10 个文件 但每 10 分钟就会添加新文件 所以我只需要获取以ABC过去 10 分钟内创建的 我该如何实现这一目标
  • 从 FTP 下载文件以及如何提示用户在 ASP.NET C# 中保存/打开文件

    我想从 FTP 下载文件 并在用户单击 ASP NET C 页面上的下载按钮时在用户的 Web 浏览器中打开下载 保存提示 string strDownloadURL System Configuration ConfigurationSe
  • PHP ftp_put 返回“无法建立数据连接:连接被拒绝”

    我有一台通过 PHP 运行一些 FTP 的 PC 我知道它在 1 2 个月前还可以工作 但现在我返回它 发现该 PC 不再工作了 我知道我一直在使用电脑 但我想不出可能会发生什么变化 PHP 抛出错误消息读取 无法建立数据连接 连接被拒绝
  • Ftp 仅在 .NET 4.0 中抛出 WebException

    我有以下 C 代码 当针对 NET Framework 3 5 或 2 0 编译时 它运行得很好 我没有针对 3 0 进行测试 但它很可能也能工作 问题是 当针对 NET Framework 4 0 构建时它会失败 FtpWebReques
  • 让 FTP 在 Azure VM 上运行,克服 ftp 客户端上的“连接关闭”问题

    我正在努力连接到 Azure 中新 VM 上的 FTP 我从默认映像 Windows Server 2012 Datacenter 创建了一个新的虚拟机 并通过 RDP 连接到新的虚拟机中 然后 我启用了 Web 服务器 IIS 角色 包括
  • 警告:ftp_get():删除操作成功

    我有一些从我们的开发服务器传输备份的代码 它似乎随机表现得非常奇怪 并给出以下错误 输出 Warning ftp get Delete operation successful in root cron get dev archives p
  • FTP 传入监控(上传时)

    我们有大约 100 个用户通过 FTP 登录并上传文件 我们的在线系统 PHP 应该显示刚刚上传的项目 我不想继续检查所有不同的 FTP 文件夹来检查新文件 在不降低服务器速度的情况下 使用 PHP 检查新文件的最佳方法是什么 所有用户都在
  • 检查 FTP 服务器上的可用空间

    我正在运行一个构建脚本 其中三个可执行文件 每个 100mb 被上传到 FTP 服务器 由于 FTP 服务器空间问题 第一次上传可能会失败 因此我们的构建过程会失败 这意味着我必须从服务器释放一些空间并再次运行构建脚本 这是浪费时间 我想在
  • Curl 同时下载和上传同一文件

    不确定是否可能 但我一直在尝试使用curl 从 HTTP 位置下载文件并将其输出到 FTP 服务器上 如果这实际上可能的话 我真的很希望得到一些帮助 curl http example com down curl T ftp mysite
  • 使用 .NET 进行选择性 FTP 下载

    我有一个 ftp 构建站点 新构建将在其中更新 它将在每个新构建的特定 ftp 位置创建一个名为 Build XXXXX 的新文件夹 我需要从 Build XXXXX 目录中的某个位置下载构建版本 例如 Builds Build XXXXX
  • 从 C# 中的服务器下载后,Zip 文件被损坏

    request MakeConnection uri WebRequestMethods Ftp DownloadFile username password response FtpWebResponse request GetRespo
  • FTPWebRequest .NET 3.5 与 4

    我有一个应用程序可以与 IBM 大型机建立 FTP 连接 并且一切都工作正常 然后 我针对 NET 4 重新编译 主机不再接受该文件 并给出一条错误消息 指出该文件不存在 或者我没有该文件的权限 这是我用来发送文件的 Ftp FtpWebR
  • 如何将 FTP 目录的内容复制到共享网络路径?

    我需要将 FTP 位置上的目录的全部内容复制到共享网络位置 FTP 任务要求您指定确切的文件名 不是目录 而文件系统任务不允许访问 FTP 位置 EDIT 我最终编写了一个脚本任务 没有什么比恢复一个非常旧的线程更好的了 但是有一个解决方案
  • 仅在 Azure Web 应用程序中从 FTP 下载文件失败

    我有一个非常基本的代码 可以从 FTP 服务器下载文本文件列表 foreach var fileUri in files try var ftpRequest FtpWebRequest FtpWebRequest Create fileU
  • Filezilla - 需要将项目从服务器复制到桌面[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这可能非常简单明了 但我对 Filezilla 不太熟悉 不能犯错误 我需要将文件从服务器复制到桌面 而不实际将其从服务器中删除 实时站点
  • 如何递归列出远程 FTP 的目录内容

    从远程 UNIX FTP 服务器下载文件后 您想要验证是否已正确下载所有文件 您至少会在 Windows 命令提示符中获得类似于 dir s 命令的信息 FTP 客户端在 Windows 上运行 遗憾的是这是为 Unix Linux 用户编
  • 向 FTP 服务器执行跨域 XMLHTTPREQUEST 的语法是什么?

    我有一个 webDav CORS 插件 可以使用它在 webDav 服务器上 POST PUT GET REMOVE ALLDOCS 文件 我现在想对 FTP 做同样的事情 但我正在努力获取xmlhttprequest 工作语法 我只是收到
  • Magento Connect Manager 和 ftp 写入文件权限

    将我的网站从开发域转移到实时域后 我尝试使用 magento 连接管理器安装扩展 但是我不断收到 CONNECT ERROR Please check for sufficient ftp write file permissions Yo

随机推荐

  • 程序中的负数存储及类型转换

    程序中的负数存储及类型转换 负数在计算机中怎样存储什么是原码 反码 补码为什么要设置反码 xff0c 补码剖析本质 C语言数据类型转换 xff08 自动类型转换 43 强制类型转换 xff09 自动类型转换强制类型转换类型转换只是临时性的自
  • Java Collections singleton()方法与示例

    集合类singleton 方法 Collections Class singleton method singleton method is available in java util package singleton 方法在java
  • 找素数问题

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • 嵌入式面试题

    面试题 字符串能直接比较大小吗typedef定义数组类型用法 字符串能直接比较大小吗 C 43 43 中字符串分两种 xff0c 一种是C语言的字符串 xff0c 一种是string字符串 C语言字符串是不可以直接比较大小的 xff0c s
  • 解决Endnote插入参考文献时导致word闪退问题

    问题描述 xff1a 通过endnote插入参考文献时 xff0c 会使得word闪退 原因分析 有像域代码之类的交互 xff0c 与endnote冲突 解决方法把word文档clean下 xff0c 即将域代码删除 解决方法 Ctrl 4
  • 音视频基础

    音视频基础 写在前面基础概念音视频直播推流和拉流什么是推流什么是拉流推流和拉流的区别 协议层 封装格式层 编解码层 像素层RTP RTCP RTMP RTSP区别RTP Real time Transport Protocol 实时传输协议
  • 回车和换行的区别

    回车和换行的区别 回车和换行的概念不同的系统间传递文件会涉及格式的转换Unix gt WindowsUnix lt Windows 回车和换行的概念 首先介绍一下 回车 xff08 carriage return r xff09 和 换行
  • 强大的PubMed插件Scholarscope

    强大的PubMed插件Scholarscope 学术基础 SCI分区什么是Pubmed什么是ScholarscopeScholarscope在不同浏览器下安装指南插件使用 学术基础 SCI分区 SCI是有两个分区 一个是JCR的划分 一般称
  • 反客STM32F4核心板DAP无法下载程序解决

    反客STM32核心板DAP无法下载程序解决 问题解决 问题 反客STM32F407ZGT6核心板使用反客的DAP下载器下载程序 xff0c 无法识别下载器 xff0c 说明下载器没有正常工作 xff08 这里是已经换过杜邦线了 xff0c
  • 有人物联网485转网口模块网口调试助手1035未知错误

    有人物联网485转网口模块网口调试助手1035未知错误 问题解决 问题 项目使用有人物联网485转网口模块USR TCP232 304 xff0c 将模块接入实验室路由器 xff0c IP地址设置为动态IP xff0c 路由器上查得IP为1
  • 1.半导体基础知识

    1 半导体基础知识 本征半导体什么是半导体 xff1f 什么是本征半导体 xff1f 本征半导体的结构本征半导体中的两种载流子为什么将自然界导电性能中等的半导体材料制成本征半导体 杂质半导体N型半导体P型半导体 PN结PN结中的扩散运动漂移
  • 2.半导体二极管

    2 半导体二极管 二极管的组成二极管和PN结伏安特性的区别二极管的伏安特性及电流方程为什么反向饱和电流越小 xff0c 单向导电性能越强 二极管的等效电路二极管的主要参数稳压二极管 xff08 又称齐纳二极管或反向击穿二极管 xff09 稳
  • Python | 从另一个列表的指定开始到结束索引创建一个列表

    Given a list start and end index we have to create a list from specified index of the list in Python 给定一个列表 xff0c 开始和结束索
  • EDA基础概念

    EDA基础概念 EDA和CADCAD工具EDA工具 EDA技术实现目标可编程逻辑器件简称PLD发展历程CPLD简介FPGA简介FPGA和CPLD区别是否需要同时学习FPGA和CPLDXilinx xff08 赛灵思 xff09 公司介绍 x
  • 半导体存储电路

    半导体存储电路 SR锁存器和触发器寄存器存储器存储器分类RAMSRAMDRAM ROMMROMPROMEPROMEEPROMFLASH原理发现者应用工作原理存储单元 磁盘硬盘机械硬盘 xff08 HDD xff09 固态硬盘 xff08 S
  • python编写简单的EXE启动器

    exe启动器 放假到现在一直憋在家里 xff0c 最近实在无聊 xff0c 就下了两个游戏玩 xff0c 玩的时候 xff0c 因为快捷方式放桌面感觉有点麻烦 xff0c path文件下图标有太多 xff0c 就想起了自己编写一个exe启动
  • mysql的left join和inner join的详细用法

    join用法 1 inner join xff0c 内连接 显示两个表中有联系的所有数据 2 left join xff0c 左链接 以左表为参照 显示所有数据 右表中没有则以null显示 3 right join xff0c 右链接 以右
  • 原来我的Ubuntu20.04桌面假死,按Alt+Ctrl+F1就可以恢复!

    配置 联想Y9000PUbuntu20 04双系统显卡驱动 NVIDIA Linux x86 64 525 89 02 xff08 下载自官网 xff09 浏览器 Edge 问题 双系统使用过一段时间之后 xff0c 偶尔会出现桌面假死的情
  • 如何查看python安装路径

    在使用python的时候 xff0c 有时候会需要找到python包的安装位置 xff0c 来找其他安装的第三方包 下面我们来看看 xff0c 在不同平台上 xff0c 怎么找到python的安装路径 很多运行的系统软件都是建立在pytho
  • ftp文件操作

    FTP中的文件操作 如何对ftp文件系统进行操作 文章目录 FTP中的文件操作前言一 ftp是什么 xff1f 二 使用步骤1 本地创建搭建ftp系统2 操作 总结 前言 公司中运用到了ftp小文件系统 xff0c 自己在本地学习了一下网上