Java perl文件删除/删除超过n天的文件

时间:2012-04-13 17:00:13

标签: java perl delete-file

我正在使用Java 6.

我正在编写一种方法,我必须删除超过n天的文件。 这将是管家工作,按计划运行。

最好的方法是什么?

  1. 在Java中编写方法以检查和删除文件。但我认为使用Java我们可以获得文件创建时间。
  2. 用perl编写并从Java调用脚本。
  3. 欢迎任何其他建议。

3 个答案:

答案 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

许多用于处理该类文件的实用方法。