java下载获取ftp上修改时间、创建时间最新的文件

下载获取ftp上修改时间、创建时间最新的文件

  private static String getNewestFileName() {
  		 //此处省略ftp连接 根据各自需要连接
 		FTPClient ftpClient = getClient();
 		//获取ftp目录下所有文件
 		FTPFile[] files=ftpClient.listFiles());
        List<FTPFile> list = new ArrayList<>();
        //文件放入自定义集合
        for (FTPFile f : files) {
            list.add(f);
        }
        //根据文件修改时间获取最新的文件
        Collections.sort(list, (file1, newFile) -> {
            if (file1.getTimestamp().compareTo(newFile.getTimestamp())<0) {
                return 1;
            } else if (file1.getTimestamp().compareTo(newFile.getTimestamp())==0) {
                return 0;
            } else {
                return -1;
            }
        });
        return list.get(0).getName();
    }
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下载多个文件并压缩它们,你可以使用JavaFTP客户端库,如Apache Commons Net。以下是一个简单的示例代码,可以将多个文件下载到本地,并将它们压缩成一个ZIP文件: ```java import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class FtpDownloadAndZip { private static final String FTP_HOST = "ftp.example.com"; private static final int FTP_PORT = 21; private static final String FTP_USERNAME = "username"; private static final String FTP_PASSWORD = "password"; private static final String LOCAL_DIR = "/path/to/local/dir/"; public static void main(String[] args) { FTPClient ftpClient = new FTPClient(); try { // 连接FTP服务器 ftpClient.connect(FTP_HOST, FTP_PORT); ftpClient.login(FTP_USERNAME, FTP_PASSWORD); // 切换工作目录到要下载的目录 ftpClient.changeWorkingDirectory("/path/on/ftp/server/"); // 获取下载文件列表 FTPFile[] files = ftpClient.listFiles(); if (files != null && files.length > 0) { // 创建本地文件夹 File localDir = new File(LOCAL_DIR); if (!localDir.exists()) { localDir.mkdirs(); } // 创建ZIP输出流 FileOutputStream fos = new FileOutputStream(LOCAL_DIR + "download.zip"); ZipOutputStream zos = new ZipOutputStream(fos); // 下载每个文件并添加到ZIP输出流 for (FTPFile file : files) { if (file.isFile()) { String fileName = file.getName(); File localFile = new File(LOCAL_DIR + fileName); OutputStream os = new BufferedOutputStream(new FileOutputStream(localFile)); ftpClient.retrieveFile(fileName, os); os.close(); // 添加到ZIP输出流 ZipEntry entry = new ZipEntry(fileName); zos.putNextEntry(entry); FileInputStream fis = new FileInputStream(localFile); byte[] buffer = new byte[1024]; int len; while ((len = fis.read(buffer)) > 0) { zos.write(buffer, 0, len); } zos.closeEntry(); fis.close(); // 删除本地文件 localFile.delete(); } } // 关闭ZIP输出流 zos.close(); fos.close(); } // 断开连接 ftpClient.logout(); ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } ``` 请注意,此代码仅提供基本示例,可能需要进行一些修改以适应您的特定情况。例如,您可能需要更改文件名或路径,或者添加错误处理和日志记录。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值