我正在使用Java 6.
我正在编写一种方法,我必须删除超过n天的文件。 这将是管家工作,按计划运行。
最好的方法是什么?
欢迎任何其他建议。
答案 0 :(得分:2)
你可以从java做到这一点。无需使用perl。
import java.io.File;
import java.util.Calendar;
public class DeleteOlderThan
{
private static long daysAgo;
private static void delete(File f) {
if (f.isDirectory()) {
for (File l : f.listFiles())
delete(l);
}
if (f.lastModified() <= daysAgo) {
f.delete();
}
}
public static void main(String[] args)
{
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, -1 * new Integer(args[1]));
daysAgo = cal.getTimeInMillis();
delete(new File(args[0]));
}
}
运行java DeleteOlderThan /my/path days
会在超过几天的路径中递归删除文件。
答案 1 :(得分:1)
我不会从Java调用perl。没有意义。
如果您正在运行* nix框,只需使用bash命令执行此操作。
如果您使用的是Windows,请使用Java进行操作。网络上都有这样的例子。
答案 2 :(得分:0)
签出Apache Commons-IO,FileUtils,特别是isFileOlder(文件文件,日期日期)方法。这是JavaDoc的链接:
http://commons.apache.org/io/apidocs/org/apache/commons/io/FileUtils.html
许多用于处理该类文件的实用方法。