我开发了一个应用程序,它使用 apache Fileutils 类方法将源文件从源目录移动到目标目录,如下所示。
private void filemove(String FilePath2, String s2) {
String filetomove = FilePath2 + s2; //file to move its complete path
File f = new File(filetomove);
File d = new File(targetFilePath); // path of target directory
try {
FileUtils.copyFileToDirectory(f, d);
f.delete(); //from source dirrectory we are deleting the file if it succesfully move
//*********** code need to add to delete the zip files of target directory and only keeping the latest two zip files ************//
} catch (IOException e) {
String errorMessage = e.getMessage();
logger.error(errorMessage);
}
}
现在,当我将文件移动到目标目录时,在这种情况下,目标目录将包含某些 zip 文件,我正在尝试的是,当我将源文件移动到目标目录时......它应该做一个预先检查,以便在目标目录中删除所有 zip 文件,但只保留最后 7 天的 zip 文件(因此不应删除最后 7 天的 zip 文件)
我尝试过的是最近两天的 zip 文件,它保留了最近两天的 zip 文件。
请告知我如何在 7 天内更改它以使其保留最后 7 天的 zip 文件?
获取数组中的所有文件,并对它们进行排序,然后忽略前两个:
Comparator<File> fileDateComparator = new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
if(null == o1 || null == o2){
return 0;
}
return (int) (o2.lastModified() - o1.lastModified());//yes, casting to an int. I'm assuming the difference will be small enough to fit.
}
};
File f = new File("/tmp");
if (f.isDirectory()) {
final File[] files = f.listFiles();
List<File> fileList = Arrays.asList(files);
Collections.sort(fileList, fileDateComparator);
System.out.println(fileList);
}