我有一个桌面应用程序可以下载服务器上的所有文件。当添加新文件时,我只想下载较新的文件。
答案 0 :(得分:0)
要知道哪一个是“新的”,你必须创建一个地图/或其他数据结构,并将一对最适合你的名称/元数据创建时间(或最后修改时间)放在一起,当你迭代你的文件只需使用
查看其元数据Path file = ...;
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);
attr.creationTime(); //or attr.lastModifiedTime();
当您将这些时间与服务器上的时间进行比较时,决定只下载最新时间的那个。
无论哪种方式,您都必须至少跟踪之前下载时修改(或创建)的名称/时间并进行比较。
如果桌面上的这个应用程序不是某种运行不间断的服务,请找一些方法在系统,序列化或嵌入数据库h2 / hsqldb中保存该数据。使用conncurent iteration / parralelStream来检查这些时间并比较,如果你使用java8
编辑 - 从网址获取元数据,请检查此问题Get the Last Modified date of an URL