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

相关文章

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

从VC6迁移至VS2005 ,VS2008

最近开发平台由VC6.0升级至VS2005,需要将原有的项目迁移,特将碰到的问题归纳如下: 1消息映射 VS2005对消息的检查更为严格,以前在VC6下完全正常运行的消息映射在VS2005下编译不通过 a. ON_MESSAGE(message,OnMyMessage);   OnMyMessage返回值必须为LRESULT,其形式为:afx_msg LRESULT OnMyMessage(

基于人工智能的图像风格迁移系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像风格迁移是一种计算机视觉技术,它可以将一种图像的风格(如梵高的绘画风格)迁移到另一幅图像上,从而生成一幅具有特定艺术风格的图像。基于深度学习的图像风格迁移技术已经广泛应用于艺术创作、图像处理等领域。本文将介绍如何构建一个基于人工智能的图像风格迁移

gs_dump和gs_dumpall 迁移数据库

目录 0、源端实例收集AWR1、创建目录2、gs_dump - 业务停机3、gs_dumpall - 业务停机4、拷贝文件5、目标实例导入数据 0、源端实例收集AWR https://blog.csdn.net/hezuijiudexiaobai/article/details/134220949 1、创建目录 mkdir -p /pgdata/data/opengauss-