需求:使用FTPClient,根据上传文件和需要存放的文件目录,若FTP服务端不存在指定的文件目录,则创建;否则直接将文件保存至对应的文件目录中。
测试:感觉问题不大,直接写代码,做测试用例。用JAVA第三方的FTPClient作为工具,主要代码如下:
public boolean FtpUpload(String fileName, String file, String fileDir) { FTPClient ftp = new FTPClient(); // 创建FTP连接,登录,根据返回码,测试连接是否成功,此处省略....... // 主要是下面代码: if(fileDir != null) { ftp.makeDirectory(fileDir);// 创建文件目录 ftp.changeWorkingDirectory(fileDir);// 切换至文件目录准备上传 } // 下面省略一万字........ } 因为本机为windows开发环境,顺便正好有ftp服务端,测试:
FtpUpload("test.txt", "E:\\test.txt", "/DirA/DirB");
一切顺利,如愿在FTP目录/DirA/DirB不存在的情况下,创建目录并将test.txt写入DirB目录下。
接下来更换Linux下发布的FTP服务,再用测试用例测试,发现创建目录返回false,无法创建目录,也无法切换至指定目录?难道是linux权限问题?
经过测试,在排除了权限问题等,查看API,通过调用FTPClient.printWorkingDirectory()函数,发现使用windows发布的FTP服务,打印的路径为“/”,而用linux发布的FTP服务,打印的路径为“/home/ftp/”,为FTP的全路径。
在这个情况下,使用相对路径去创建FTP目录,如下:
FtpUpload("test.txt", "E:\\test.txt", "DirA");
顺利创建文件目录,并将文件写入DirA目录下。
最后在调试过程中,还是无法通过指定"/DirA/DirB"方式,批量创建文件目录,但通过间接的方法可以搞定。
所谓间接方式,就是类似这样:
//将文件目录按路径分隔符读取,然后分别创建 String[] ftppaths = ftppath.split("/"); for(int i=0; i<ftppaths.length; i++) { ftp.makeDirectory(ftppaths[i]); ftp.changeWorkingDirectory(ftppaths[i]); }
相关推荐
ics_ftpclient 创建文件路径
本项目使用org.apache.commons.net.ftp.FTPClient实现文件上传到ftp服务器,解决不能上传中文文件的问题。
java FTPClient 文件上传下载文件
NULL 博文链接:https://1017401036.iteye.com/blog/2266160
java利用FTPClient实现上传下载文件
Delphi XE3使用ICS的FTPClient从FTP服务器下载文件,本人用来实现客户端软件自动升级功能,提供从FTP下载文件的源码供大家参考。之前用的IdFTP连接服务器经常出现10054错误,参考网上的意见使用ICS的FTPClient解决了...
JAVA中使用FTPClient上传下载
ftpClient.changeWorkingDirectory(path); ftpClient.enterLocalPassiveMode(); //由于apache不支持中文语言环境,通过定制类解析中文日期类型 ftpClient.configure(new FTPClientConfig(...
* 如果不需要移动,只是需要文件重命名,可以使用ftp.rename(oleName,newName) * @param ftp * @param oldPath * @param newPath * @return */ public boolean moveFile(FTPClient ftp,String oldPath,...
最近项目需要写个小功能,需求就是实时下载ftp指定文件夹下的所有文件(包括子目录)到本地文件夹中,保留文件到目录路径不变。今天小编给大家分享使用ftpClient下载ftp上所有文件的方法,需要的的朋友参考下吧
用ftpclient 对ftp服务器(支持linux,window服务器)上的文件上传、下载、删除 文件包含jar包,可直接运行代码
上传本地文件夹的文件到FTP服务器指定目录,可直接使用,也可修改源码,编译器VS2015
FtpClient类上传文件(java) 运行需要的包: ojdbc14.jar jsp-api.jar dom4j-1.6.1.jar log4j-1.2.14.jar
FTPClient (apache) 上传下载示例代码
Swing+FtpClient实现 支持文件、文件夹上传 支持文件、文件夹下载 支持文件重命名 支持文件删除等功能
FtpClient(sun)上传下载实例代码
我用的FTPClient是由Apache组织的commons-net.jar包中的API,这个包用起来非常的方便,很容易上手。我在项目开发的过程中主要用到了文件的上传功能,希望大家能学的一些东西
FTPClient (c#源码,ftp文件下载,上传等)FTPClient (c#源码) FTPClient (c#源码)
在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件、下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件。 一、上传文件 原理不介绍了,大家直接...
FTPClient开发工具类及FTPClient访问文件的部分使用示例