特定の期間より古いファイルを削除したいので、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();
}
}
上記は私の現在のコードです。1 週間以上経過したファイルのみを削除する 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 日より古い場合は削除する必要がありますか?