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

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

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

    隨筆-200  評(píng)論-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) 評(píng)論(2)  編輯  收藏 所屬分類: 職場(chǎng)生活

    評(píng)論:
    # re: 一個(gè)java 下載FTP( Linux)服務(wù)器文件夾的例子 2011-08-21 15:23 | ww
    非常感謝,代碼很詳盡哦  回復(fù)  更多評(píng)論
      
    # re: 一個(gè)java 下載FTP( Linux)服務(wù)器文件夾的例子 2012-04-18 20:32 | pingdhm
    感謝你  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 免费下载成人电影| 一本久久a久久精品亚洲| 相泽南亚洲一区二区在线播放| 免费国产在线观看| 久久这里只精品国产免费10| 亚洲日本人成中文字幕| 国产成人高清亚洲| 国产福利视精品永久免费 | 精品女同一区二区三区免费播放 | 波霸在线精品视频免费观看| 亚洲妓女综合网99| 狠狠亚洲狠狠欧洲2019| 成人免费视频试看120秒| 两个人看的www免费| 亚洲AV成人无码网天堂| 亚洲首页在线观看| 亚洲区小说区图片区| 免费看韩国黄a片在线观看| 99久久婷婷免费国产综合精品| 最新亚洲精品国偷自产在线| 亚洲成色www久久网站夜月| 国产精品公开免费视频| 国产va在线观看免费| 无遮挡免费一区二区三区| 亚洲va乱码一区二区三区| 久久久久亚洲AV片无码| 亚洲区小说区图片区| 日韩在线免费电影| 99热在线精品免费全部my| 国产无遮挡无码视频免费软件| 香港特级三A毛片免费观看| 亚洲成人免费网站| 香蕉视频在线观看亚洲| 国产成人亚洲精品狼色在线| 国产国产人免费视频成69大陆| 午夜国产精品免费观看| 在线日本高清免费不卡| 国产免费一区二区三区在线观看| 黄页免费视频播放在线播放| 在线观看亚洲AV日韩AV| 亚洲国产模特在线播放|