我如何才能知道文件是何时使用 java 创建的,因为我希望删除早于某个时间段的文件,目前我正在删除目录中的所有文件,但这并不理想:
public void DeleteFiles() {
File file = new File("D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/pdf/");
System.out.println("Called deleteFiles");
DeleteFiles(file);
File file2 = new File("D:/Documents/NetBeansProjects/printing~subversion/fileupload/Uploaded/");
DeleteFilesNonPdf(file2);
}
public void DeleteFiles(File file) {
System.out.println("Now will search folders and delete files,");
if (file.isDirectory()) {
for (File f : file.listFiles()) {
DeleteFiles(f);
}
} else {
file.delete();
}
}
以上是我当前的代码,我现在正在尝试添加一个 if 语句,该语句只会删除一周前的文件。
编辑:
@ViewScoped
@ManagedBean
public class Delete {
public void DeleteFiles() {
File file = new File("D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/resources/pdf/");
System.out.println("Called deleteFiles");
DeleteFiles(file);
File file2 = new File("D:/Documents/NetBeansProjects/printing~subversion/fileupload/Uploaded/");
DeleteFilesNonPdf(file2);
}
public void DeleteFiles(File file) {
System.out.println("Now will search folders and delete files,");
if (file.isDirectory()) {
System.out.println("Date Modified : " + file.lastModified());
for (File f : file.listFiles()) {
DeleteFiles(f);
}
} else {
file.delete();
}
}
现在添加一个循环。
编辑
我在测试上面的代码时注意到我得到了最后修改:
INFO: Date Modified : 1361635382096
我应该如何编写 if 循环以说明它是否超过 7 天,当它采用上述格式时将其删除?
原文由 user2065929 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用
File.lastModified()
获取文件/目录的最后修改时间。可以这样使用:
删除早于
x
(int
)天的文件。