2012-04-13 5 views
2

Ich bin mit Java 6.Java Perl-Datei löschen/Löschen von Dateien älter als n Anzahl der Tage

Ich schreibe ein Verfahren, in dem ich Dateien löschen müssen älter als n Anzahl der Tage. Dies ist Hausarbeit, läuft nach Zeitplan.

Was ist der beste Weg, dies zu tun?

  1. Schreiben Sie die Methode in Java, um die Dateien zu überprüfen und zu löschen. Aber ich denke, mit Java können wir die Dateierstellungszeit bekommen.
  2. In Perl schreiben und das Skript von Java aufrufen.

Alle anderen Vorschläge sind ebenfalls willkommen.

Antwort

2

Sie können dies nur von Java. Keine Notwendigkeit, Perl zu verwenden.

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 ausführen, werden Dateien rekursiv in dem Pfad als Tage älter löschen.

1

Ich würde Perl nicht von Java aufrufen. Es hat keinen Sinn.

Wenn Sie eine * nix-Box ausführen, cron einfach einen Bash-Befehl, um es zu tun.

Wenn Sie Windows verwenden, tun Sie es in Java. Beispiele für solche Dinge sind überall im Internet.

+0

also meinst du es ist von java ohne zusätzliche Bibliothek? – adi

+0

@adi ich glaube schon. Überprüfen Sie die Dateiklasse. Suchen Sie nach Proben. Es ist alles ziemlich gewöhnliches Zeug. –