利用apach net 组件 下载 文件(ftp)

public static void download()

{

        String url = strUrl;
        String user = strUser;
        String pwd = strPassword;

        String strDir = strLocalPath;

        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        
        String strCurrentDate = sdf.format(new Date());
        strDir = strDir.concat(strCurrentDate).concat("/test");

        FTPClient ftp = new FTPClient();
        ftp.connect(url);
        if (ftp.login(user, pwd)) {
            int reply = ftp.getReplyCode();
            if (!FTPReply.isPositiveCompletion(reply)) {
                ftp.disconnect();
                System.out.println("disconnect");
            } else {
                ftp.enterLocalPassiveMode();
                ftp.setFileType(FTP.BINARY_FILE_TYPE);
            }
        }

        // String[] names = ftp.listNames("/development/testsit/log/test");
        // for(String name : names)
        // {
        // System.out.println("==" + name);
        // }
        String strPath = strFtpPath.concat("test");
        FTPFile[] ftpFiles = ftp.listFiles(strPath);

        File dir = new File(strDir);
        if (!dir.exists()) {
            dir.mkdirs();
        }

        for (FTPFile ftpFile : ftpFiles) {
            Calendar calendar = ftpFile.getTimestamp();
            Calendar rightNow = Calendar.getInstance();

            if (calendar.get(Calendar.YEAR) == rightNow.get(Calendar.YEAR)
                    && calendar.get(Calendar.MONTH) == rightNow
                            .get(Calendar.MONTH)
                    && calendar.get(Calendar.DATE) == rightNow
                            .get(Calendar.DATE)) {
                System.out.println(ftpFile.getName());
                File file = new File(dir.getPath() + File.separator
                        + ftpFile.getName());
                if (!file.exists()) {
                    file.createNewFile();
                }
                long pos = file.length();
                RandomAccessFile raf = new RandomAccessFile(file, "rw");
                raf.seek(pos);
                ftp.setRestartOffset(pos);

                InputStream is = ftp.retrieveFileStream(strPath + "/"
                        + ftpFile.getName());
                if (is == null) {
                    System.out.println("no such file:" + ftpFile.getName());                    
                    
                } else {
                    System.out.println("start getting file:"
                            + ftpFile.getName());
                    int b;
                    while ((b = is.read()) != -1) {
                        raf.write(b);
                    }
                    if (ftp.getReply() == 226) {
                        System.out.println("done!");
                    }
                    is.close();
                }                            
                raf.close();
            }
        }

        ftp.logout();

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值