2012-04-13 2 views
2

Я использую Java 6.Java файл Perl удалить/удалить файлы старше п количество дней

Я пишу метод, где я должен удалить файлы старше п число дней. Это будет работа дома, работающая по расписанию.

Каков наилучший способ для этого?

  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

Я бы не назвал perl из Java. Там нет никакого смысла.

Если вы используете поле * nix, просто запустите команду bash, чтобы сделать это.

Если вы используете Windows, сделайте это на Java. Примеры таких вещей повсюду в Интернете.

+0

так вы подразумеваете, что это возможно из java без использования какой-либо дополнительной библиотеки? – adi

+0

@adi Я так считаю. Проверьте класс File. Просмотрите образцы. Это все довольно распространенный материал. –

Смежные вопросы