FTPClient 的changeWorkingDirectory方法设置路径后放回false不知道是为什么?

[复制链接]
查看11 | 回复3 | 2021-1-27 06:26:35 | 显示全部楼层 |阅读模式
publicFTPFile[]listDataFiles(Stringdatapath){
FTPClientftp=newFTPClient();
FTPFile[]files=null;
try{
loadFtpConfig();
intreply;
//连接FTP服务器
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.connect(ftpHost,ftpPort);
//下面三行代码必须要,而且不能改变编码格式,否则不能正确下载中文文件

//ftp.changeWorkingDirectory("/home");
ftp.setControlEncoding("UTF-8");
FTPClientConfigconf=newFTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServerLanguageCode("zh");
//登录ftp
ftp.login(ftpUser,ftpPwd);
//看返回的值是不是230,如果是,表示登陆成功
reply=ftp.getReplyCode();
//以2开头的返回值就会为真
if(!FTPReply.isPositiveCompletion(reply)){
ftp.disconnect();
System.out.println("连接服务器失败");
returnnull;
}
System.out.println("登陆服务器成功");
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
//ftp.enterRemotePassiveMode();
booleanisChanhge=ftp.changeWorkingDirectory(datapath);
files=ftp.listFiles();
//files=ftp.listFiles("/home/ufida");
ftp.logout();
}catch(BusinessExceptione){
e.printStackTrace();
}catch(SocketExceptione){
Logger.error(ftpHost+"连接失败!");
}catch(IOExceptione){
}
returnfiles;
}
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:26:35 | 显示全部楼层
这个要看你的服务器的编码,我的是这样的:
chgDir=ftp.changeWorkingDirectory(newString(remotePath.getBytes(),"ISO-8859-1"));
if(chgDir){
......
}

回复

使用道具 举报

千问 | 2021-1-27 06:26:35 | 显示全部楼层
以“/”开头的为绝对路径,不以“/”开头的是相对路径,changeWorkingDirectory会导致访问ftp服务器的地址不一样
回复

使用道具 举报

千问 | 2021-1-27 06:26:35 | 显示全部楼层
引用2楼陈_小哥哥的回复:以“/”开头的为绝对路径,不以“/”开头的是相对路径,changeWorkingDirectory会导致访问ftp服务器的地址不一样
一下被点醒
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行