<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 無聲 閱讀(5347) 評論(2)  編輯  收藏 所屬分類: 職場生活

    評論:
    # re: 一個java 下載FTP( Linux)服務器文件夾的例子 2011-08-21 15:23 | ww
    非常感謝,代碼很詳盡哦  回復  更多評論
      
    # re: 一個java 下載FTP( Linux)服務器文件夾的例子 2012-04-18 20:32 | pingdhm
    感謝你  回復  更多評論
      
    主站蜘蛛池模板: 尤物视频在线免费观看| 久久www免费人成看国产片| 国产人在线成免费视频| 亚洲春色另类小说| 国产无人区码卡二卡三卡免费 | 亚洲av中文无码乱人伦在线r▽| 韩国免费a级作爱片无码| 亚洲熟妇无码AV在线播放| 九九美女网站免费| 亚洲精品国产肉丝袜久久| 好男人www免费高清视频在线| 亚洲H在线播放在线观看H| 免费的一级片网站| 天堂亚洲免费视频| 亚洲精品无码久久久久sm| 2021精品国产品免费观看| 久久综合久久综合亚洲| 免费一级毛片正在播放| 国产偷伦视频免费观看| 亚洲最大中文字幕| 免费永久看黄在线观看app| 国产又黄又爽又大的免费视频| 亚洲高清在线观看| 女人被免费视频网站| 一区二区免费电影| 精品无码一区二区三区亚洲桃色| 男人的好免费观看在线视频| 亚洲AV综合永久无码精品天堂| 国产精品亚洲视频| 91人成网站色www免费下载| 亚洲日韩AV一区二区三区四区| 四虎影视永久免费观看地址| 最近中文字幕大全免费版在线| 亚洲va在线va天堂va手机| 亚洲国产精品成人| 久久久久久曰本AV免费免费| 亚洲а∨精品天堂在线| 久久精品国产亚洲av四虎| 在线免费观看一级片| 日本视频免费高清一本18| 亚洲欧好州第一的日产suv|