下面是我写的java代码,经测试,可以实现,仅供大家参考:
/*
*@ param fileName 文件名称
*/
public static boolean downFile(String fileName) throws Exception{
log.info(">>>>>>>>>>>文件下载开始,文件名称为 :"+fileName);
boolean flag= false;
FTPClient ftpClient = new FTPClient();
try{
int reply;
ftpClient.connect(ip,port); //ip,port,username,password这些参数可以直接在相应的地方初始化。
ftpClient.login(userName,passWord);
reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
return flag;
}
ftpClient.changeWorkingDirectory(remotePath);//转移到指定路径
FTPFile [] ftpFile = ftpClient.listFiles();
for(FTPFile ff:ftpFile){
if(ff.getName().equals(fileName)){
File localFile = new File(localPath+ff.getName());
OutputStream os = new FileOutputStream(localFile);
ftpClient.retrieveFile(ff.getName(), os);
os.close();
}
}
ftpClient.logout();
flag=true;
log.info(">>>>>>>>>>>下载文件成功,存放路径为:"+localPath);
} catch (ConnectException e){
log.info(">>>>>>>>>>>>connect "+ip+" server failed !");
e.printStackTrace();
}catch (IOException e){
log.info(">>>>>>>>>>>>download file error !");
e.printStackTrace();
}finally{
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
return flag;
}