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文件操作 的相关文章

随机推荐

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

    程序中的负数存储及类型转换 负数在计算机中怎样存储什么是原码 反码 补码为什么要设置反码 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 自己在本地学习了一下网上