<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-200  評論-148  文章-15  trackbacks-0
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;

    import org.apache.commons.net.ftp.FTPClient;
    import org.apache.commons.net.ftp.FTPClientConfig;
    import org.apache.commons.net.ftp.FTPFile;

    public class DownFTPFile {

    private String hostname;
    private String username;
    private String password;
    private String localBaseDir;
    private String remoteBaseDir;


    private static FTPClient ftpClient = new FTPClient();

    public static void main(String[] args) {
    String hostname = "172.18.72.66";
    String username = "sfdc3";
    String password = "sfdcadmin";
    String localBaseDir = "c:/temp/";
    String remoteBaseDir = "ptsinstall/v3.20.06";

    DownFTPFile downFTPClient = new DownFTPFile();
    downFTPClient.setHostname(hostname);
    downFTPClient.setUsername(username);
    downFTPClient.setPassword(password);
    downFTPClient.setLocalBaseDir(localBaseDir);
    downFTPClient.setRemoteBaseDir(remoteBaseDir);
    downFTPClient.startDown();
    }

    private void startDown() {
    try {
    ftpClient.connect(hostname);
    ftpClient.login(username, password);
    FTPClientConfig conf = new FTPClientConfig( FTPClientConfig.SYST_UNIX);
    ftpClient.configure(conf);
    } catch (Exception e1) {
    e1.printStackTrace();
    }

    try {
    FTPFile[] files = null;
    boolean changedir = ftpClient.changeWorkingDirectory(remoteBaseDir);
    if ( changedir ){
    files = ftpClient.listFiles();
    for (int i = 0; i < files.length; i++) {
    downloadFile(files[i], localBaseDir, remoteBaseDir);
    }
    }
    } catch (Exception e) {
    System.out.println(e);
    }
    }

    private void downloadFile(FTPFile ftpFile, String relativeLocalPath,String relativeRemotePath) {
    if (ftpFile.isFile()) {//down file
    if (ftpFile.getName().indexOf("?") == -1) {
    OutputStream outputStream = null;
    try {
    outputStream = new FileOutputStream(relativeLocalPath+ ftpFile.getName());
    ftpClient.retrieveFile(ftpFile.getName(), outputStream);
    outputStream.flush();
    outputStream.close();
    } catch (Exception e) {
    System.err.println( e );
    } finally {
    try {
    if (outputStream != null)
    outputStream.close();
    } catch (IOException e) {
    System.out.println("ShowasaFile");
    }
    }
    }
    } else { //deal dirctory
    String newlocalRelatePath = relativeLocalPath + ftpFile.getName();
    String newRemote = new String(relativeRemotePath+ ftpFile.getName().toString());

    File fl = new File(newlocalRelatePath);
    if (!fl.exists()) {
    fl.mkdirs();
    }
    try {
    newlocalRelatePath = newlocalRelatePath + '/';
    newRemote = newRemote + "/";
    String currentWorkDir = ftpFile.getName().toString();
    //enter relative workdirectory
    boolean changedir = ftpClient.changeWorkingDirectory(currentWorkDir);
    if (changedir) {
    FTPFile[] files = null;
    files = ftpClient.listFiles();
    for (int i = 0; i < files.length; i++) {
    downloadFile(files[i], newlocalRelatePath, newRemote);
    }
    }
    //return parent directory
    if (changedir)
    ftpClient.changeToParentDirectory();
    } catch (Exception e) {
    System.out.println(e);
    }
    }
    }


    public String getHostname() {
    return hostname;
    }


    public void setHostname(String hostname) {
    this.hostname = hostname;
    }


    public String getPassword() {
    return password;
    }


    public void setPassword(String password) {
    this.password = password;
    }


    public String getUsername() {
    return username;
    }


    public void setUsername(String username) {
    this.username = username;
    }


    public String getLocalBaseDir() {
    return localBaseDir;
    }


    public void setLocalBaseDir(String localBaseDir) {
    this.localBaseDir = localBaseDir;
    }


    public String getRemoteBaseDir() {
    return remoteBaseDir;
    }


    public void setRemoteBaseDir(String remoteBaseDir) {
    this.remoteBaseDir = remoteBaseDir;
    }
    }
    posted on 2008-05-16 13:22 無聲 閱讀(5342) 評論(2)  編輯  收藏 所屬分類: 職場生活

    評論:
    # re: 一個java 下載FTP( Linux)服務器文件夾的例子 2011-08-21 15:23 | ww
    非常感謝,代碼很詳盡哦  回復  更多評論
      
    # re: 一個java 下載FTP( Linux)服務器文件夾的例子 2012-04-18 20:32 | pingdhm
    感謝你  回復  更多評論
      
    主站蜘蛛池模板: 亚洲国产精品成人精品无码区| 亚洲色四在线视频观看| 亚洲综合色一区二区三区| 国产精品免费网站| 亚洲沟沟美女亚洲沟沟| 91嫩草免费国产永久入口| 亚洲欭美日韩颜射在线二| 久久久WWW成人免费精品| 在线亚洲人成电影网站色www | 免费一级毛片正在播放| 亚洲AV无码国产精品色| 黄色片在线免费观看 | 国产成人免费高清激情视频| 亚洲在成人网在线看| 免费观看成人毛片a片2008| 亚洲女子高潮不断爆白浆| 国产一级淫片a免费播放口之 | 亚洲欧美日韩中文无线码| 日韩吃奶摸下AA片免费观看| 亚洲中文字幕一二三四区苍井空| 一级A毛片免费观看久久精品| 日韩免费视频一区二区| 亚洲大香人伊一本线| 在线观看免费污视频| 国产成人综合亚洲| 亚洲色大成网站WWW久久九九| 亚洲精品一二三区| 亚洲国产精品第一区二区三区| 亚洲专区中文字幕| 成人免费视频试看120秒| 日本高清不卡中文字幕免费| 亚洲VA成无码人在线观看天堂| 青青草国产免费国产是公开| 亚洲AV永久无码精品一百度影院| 国产精品亚洲一区二区三区| 亚洲精品无码av天堂| 性xxxx视频免费播放直播| 亚洲日韩亚洲另类激情文学| 中文字幕亚洲图片| 一个人免费观看www视频在线| 亚洲高清无在码在线电影不卡|