FTP的文件迁移,ftpClient.rename(pathFrom, pathTo)

2024-05-26 18:08

本文主要是介绍FTP的文件迁移,ftpClient.rename(pathFrom, pathTo),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

FTP文件迁移

  • maven
  • 本质
  • 代码
    • 业务逻辑代码,链接FTPClient
    • ftpClient 链接代码fTPConnectionOb
    • ftpClient 文件迁移changeFilePath

maven

在这里插入图片描述

<!-- https://mvnrepository.com/artifact/commons-net/commons-net -->
<dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.1</version>
</dependency>

或者org.apache.hadoop,因为包含了commons-net包

<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.7.3</version>
</dependency>

本质

FTPClient ftpClient = new FTPClient ();
ftpClient.rename(pathFrom, pathTo)

代码

业务逻辑代码,链接FTPClient

// An highlighted block
try {String urlString =  dataSourceCfg.getAddress();String ip = urlString.split(":")[0];String port = urlString.split(":")[1];String username = dataSourceCfg.getUser();String password = dataSourceCfg.getPassword();FTPClient ftpClient =  FTPUtils.fTPConnectionOb( ip,  port,  username,  password);String[] oldPath = path(dataXParameters.getSourcePath());String newPath = dataXParameters.getChangeFilePath();FTPUtils.changeFilePath( ftpClient, oldPath, newPath);
}catch (Exception e){logger.info(e.getMessage());
}

ftpClient 链接代码fTPConnectionOb

// An highlighted block
/**
* 连接FTP服务器
*
* @ id  地址,如:127.0.0.1
* @ port     端口,如:21
* @ username 用户名,如:root
* @ password 密码,如:root
*/
public  static FTPClient fTPConnectionOb(String ip, String port, String username, String password) {Boolean b = false;FTPClient ftpClient = new FTPClient();try {ftpClient.connect(ip, Integer.valueOf(port));ftpClient.login(username, password);ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);int reply = ftpClient.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {closeConnect(ftpClient);System.out.println("FTP服务器连接失败:"+"地址:"+ip+"  端口:"+port+"  用户名:"+username+"  密码:"+password);}else {b=true;}} catch (Exception e) {System.out.println("FTP登录失败"+e);}return ftpClient;
}

ftpClient 文件迁移changeFilePath

// An highlighted block
/*** 20210719-wx* 迁移ftp的文件* @param ftpClient* @param oldPaths 旧的路径* @param newPath 文件转移的新路径*/
public static void changeFilePath(FTPClient ftpClient,String[] oldPaths,String newPath){try{for(int i=0;i<oldPaths.length;i++){//路径或者是指向具体文件都是一样的String oldPath = oldPaths[i];// 开启服务器对UTF-8的支持,如果服务器支持就用UTF-8编码,否则就使用本地编码(GBK).if (FTPReply.isPositiveCompletion(ftpClient.sendCommand("OPTS UTF8", "ON"))) {LOCAL_CHARSET = "UTF-8";}ftpClient.setControlEncoding(LOCAL_CHARSET);ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);ftpClient.enterLocalPassiveMode();String ftpPath2 = new String(oldPath.getBytes(LOCAL_CHARSET),SERVER_CHARSET);FTPFile[] fs = ftpClient.listFiles(ftpPath2);Long timeSign = Calendar.getInstance().getTimeInMillis();if(fs.length == 1 && fs[0].isFile()){//具体到文件的String pathTo = new String((newPath+fs[0].getName()+String.valueOf(timeSign)).getBytes(LOCAL_CHARSET),SERVER_CHARSET);String pathFrom = new String(oldPath.getBytes(LOCAL_CHARSET),SERVER_CHARSET);ftpClient.rename(pathFrom, pathTo);}else{for(FTPFile file: fs){if(file.isFile()){String pathFrom = new String((oldPath+file.getName()).getBytes(LOCAL_CHARSET),SERVER_CHARSET);String pathTo = new String((newPath+String.valueOf(timeSign)+file.getName()).getBytes(LOCAL_CHARSET),SERVER_CHARSET);ftpClient.rename(pathFrom, pathTo);}}}}}catch (Exception e){logger.info(e.getMessage());}
};

这篇关于FTP的文件迁移,ftpClient.rename(pathFrom, pathTo)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1005202

相关文章

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

CentOs7上Mysql快速迁移脚本

因公司业务需要,对原来在/usr/local/mysql/data目录下的数据迁移到/data/local/mysql/mysqlData。 原因是系统盘太小,只有20G,几下就快满了。 参考过几篇文章,基于大神们的思路,我封装成了.sh脚本。 步骤如下: 1) 先修改好/etc/my.cnf,        ##[mysqld]       ##datadir=/data/loc

CentOS下mysql数据库data目录迁移

https://my.oschina.net/u/873762/blog/180388        公司新上线一个资讯网站,独立主机,raid5,lamp架构。由于资讯网是面向小行业,初步估计一两年内访问量压力不大,故,在做服务器系统搭建的时候,只是简单分出一个独立的data区作为数据库和网站程序的专区,其他按照linux的默认分区。apache,mysql,php均使用yum安装(也尝试

Linux Centos 迁移Mysql 数据位置

转自:http://www.tuicool.com/articles/zmqIn2 由于业务量增加导致安装在系统盘(20G)磁盘空间被占满了, 现在进行数据库的迁移. Mysql 是通过 yum 安装的. Centos6.5Mysql5.1 yum 安装的 mysql 服务 查看 mysql 的安装路径 执行查询 SQL show variables like

Ubuntu ftp搭建--配置不同用户不同权限

一、安装VSFTP sudo apt-get install vsftpd 二、添加FTP用户 sudo mkdir /etc/vsftpdsudo useradd -m -d /home/vsftpd vsftpd --用户名为vsftpd,目录和用户名可以自己更改sudo vi /etc/vsftpd/ftpuser.txt --这个到时与vsftp的配置文件对应建立一

风格控制水平创新高!南理工InstantX小红书发布CSGO:简单高效的端到端风格迁移框架

论文链接:https://arxiv.org/pdf/2408.16766 项目链接:https://csgo-gen.github.io/ 亮点直击 构建了一个专门用于风格迁移的数据集设计了一个简单但有效的端到端训练的风格迁移框架CSGO框架,以验证这个大规模数据集在风格迁移中的有益效果。引入了内容对齐评分(Content Alignment Score,简称CAS)来评估风格迁移

DataGrip数据迁移

第一步 第二步  第三步  第四步 选择你刚刚到处的文件即可

【虚拟机/服务器】Ubuntu Server上配置FTP服务器

当使用FTP工具连接但 Ubuntu Server 未安装 vsftpd 时会出现这样的报错 安装vsftpd sudo apt-get install vsftpd 卸载vsftpd sudo apt-get remove --purge vsftpd 当 Ubuntu Server 未启动 vsftpd 时会出现这样的报错 启动vsftpd sudo service