gpt4 book ai didi

java - 删除超过 x 天的文件

转载 作者:IT老高 更新时间:2023-10-28 20:54:23 24 4
gpt4 key购买 nike

我如何知道何时使用 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 天将其删除?

最佳答案

您可以使用 File.lastModified()获取文件/目录的最后修改时间。

可以这样使用:

long diff = new Date().getTime() - file.lastModified();

if (diff > x * 24 * 60 * 60 * 1000) {
file.delete();
}

删除早于 x (an int) 天的文件。

关于java - 删除超过 x 天的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15042855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com