資源簡介
JAVA遍歷下載FTPS服務器上的文件,
代碼片段和文件信息
import?java.io.File;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.OutputStream;
import?java.net.SocketException;
import?java.util.ArrayList;
import?org.apache.commons.net.ftp.FTP;
import?org.apache.commons.net.ftp.FTPClientConfig;
import?org.apache.commons.net.ftp.FTPFile;
import?org.apache.commons.net.ftp.FTPReply;
import?org.apache.commons.net.ftp.FTPSClient;
public?class?FTPS?{
private?static?FTPSClient?client;
private?static?ArrayList?FileList;
public?static?void?getPath(FTPSClient?ftp?String?path?ArrayList?pathArray)?throws?IOException?{
????
???? try?{
???? FTPFile[]?files?=?ftp.listFiles();
???????? for?(FTPFile?ftpFile?:?files)?{
???????? String?tmp?=?new?String(ftpFile.getName().getBytes(“utf-8“));?????????
???????? if?(tmp.equals(“.“)?||?tmp.equals(“..“))?{
???????? continue;
???????? }????????
???????? ????if?(ftpFile.isDirectory())?{?//如果是目錄,則遞歸調用,查找里面所有文件
???????? ???? if?(path.equals(“/“))?{
???????? ???? path?+=?tmp;
???????? ???? }?else?{
???????? ???? path?+=?“/“?+?tmp;
???????? ???? }???? ????
???????? ???? pathArray.add(path);
???????? ???? System.out.println(“Dir?->?“?+?path);
???????? ???? ftp.changeWorkingDirectory(path);?//改變當前路徑
???????? ???? getPath(ftp?path?pathArray);?//遞歸調用
???????? ???? path?=?path.substring(0?path.lastIndexOf(“/“));//避免對之后的同目錄下的路徑構造作出干擾,
???????? ????}
???????? }
}?catch?(Exception?e)?{
e.printStackTrace();
}
????}
????
????public?static?void?download(FTPSClient?ftp?ArrayList?pathArray?String?localRootPath)?throws?IOException?{
???? try?{
???? for?(String?string?:?pathArray)?{
???? String?localPath?=?localRootPath?+?string;
??????? ????? File?localFile?=?new?File(localPath);
??????? ????? if?(!localFile.exists())?{?
??????? ????? localFile.mkdirs();?
??????? ?
- 上一篇:jsp日歷日程安排
- 下一篇:java實現FTP客戶端
評論
共有 條評論