comment-netツールを使用してFTPダウンロードファイルを実現
2379 ワード
FTPアドレスからファイルを一括ダウンロードする機能を実現するためにcomment-net.jarパッケージ.
プライマリインプリメンテーションコード FTPリンクを取得し、FTPClientクラスに戻る方法 ファイルをダウンロードする方法
注意しなければならないのは ftpのパスで使用するパス区切りは/ である.ファイルのダウンロード中にパスを切り替えるには、最初は
プライマリインプリメンテーションコード
/**
* FTP
* @param hostName
* @param username
* @param password
* @return FTPClient
*/
public static FTPClient getFTPClient(String hostName, String username , String password,int port){
FTPClient ftpClient = new FTPClient();
port = port == 0 ?21:port; //port 21
try {
ftpClient.connect(hostName,port);
ftpClient.login(username, password);
if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
System.err.println(" FTP, 。");
ftpClient.disconnect();
} else {
ftpClient.setControlEncoding("UTF-8");
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);//
ftpClient.enterLocalPassiveMode();
System.out.println("FTP 。");
}
} catch (IOException e) {
e.printStackTrace();
System.err.println("ip ");
}
return ftpClient;
}
public static void downloadFtpFile(FTPClient ftpClient,String ftpFilePath,String localPath,String ftpFileName,String localNewFileName){
try {
ftpClient.changeWorkingDirectory(ftpFilePath.trim());//
OutputStream os = new FileOutputStream((localPath+File.separator+localNewFileName).trim());
System.out.println(" FTP :"+ftpClient.printWorkingDirectory()+" ["+ftpFileName+"] ["+localPath+"]");//
ftpClient.retrieveFile(ftpFileName,os);
ftpClient.changeToParentDirectory();
ftpClient.changeToParentDirectory();
os.close();
} catch (IOException e) {
System.err.println(" ");
e.printStackTrace();
}
}
注意しなければならないのは
boolean changeWorkingDirectory(String pathname)
メソッドを直接呼び出しましたが、無効です.ドキュメントを表示し、changeToParentDirectory()
メソッドを選択しましたが、無効です.ネット上の他の人の説明を見てから、changeToParentDirectory()
を2回呼び出してルートディレクトリに切り替えることができます.