2012-04-13 18 views
2

Javaを使用しています。Java perlファイルn日より古いファイルの削除/削除

私はn日以上古いファイルを削除する必要がある方法を書いています。 これはスケジュールに従って実行している家事の仕事になります。

これを行うにはどのような方法が最適ですか?

  1. ファイルをチェックして削除するには、Javaでメソッドを記述します。しかし、私はJavaを使用してファイルの作成時間を得ることができると思います。
  2. perlで書き込み、Javaからスクリプトを呼び出します。

他の提案も歓迎します。

答えて

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

私はJavaからperlを呼び出しません。それにはポイントがありません。

* nixボックスを実行している場合は、bronコマンドを実行するだけです。

Windowsを使用している場合は、Javaで実行します。そのようなことの例はウェブ上にあります。

+0

これは、追加のライブラリを使用せずにjavaから可能であることを意味しますか? – adi

+0

@adi私はそう信じています。 Fileクラスをチェックしてください。サンプルを参照してください。それはすべてかなり一般的なものです。 –

関連する問題