Java-программа для удаления файлов в каталоге старше N дней:
Я не несу ответственности за то, что вы случайно удалили компьютер с этим жестким диском.Не запускайте его, если не понимаете, что он делает и почему он это делает.Если вы случайно запустите этот файл для корневого или какого-либо конфиденциального каталога, старые файлы будут удалены безвозвратно.
Эта программа на Java соберет список всех файлов в C:\Users\penguins
, которые содержат текст: MyLogFile_
в его названии.Он просматривает дату lastModified()
каждого файла и определяет, сколько ему лет в миллисекундах. Если разница больше указанного количества дней (8 дней в миллисекундах), то файл удаляется.
import java.io.File;
import java.util.*;
class Runner{
public static void main(String[] args){
long numDays = 8; //this needs to be a long.
//WARNING! OLD FILES IN THIS DIRECTORY WILL BE DELETED.
String dir = "C:\\Users\\penguins";
//IF YOU ACCIDENTALLY POINT THIS TO C:\\Windows or other sensitive
//directory (and run it) you will be living in the house of pain.
File directory = new File(dir);
File[] fList = directory.listFiles();
if (fList != null){
for (File file : fList){
if (file.isFile() &&
file.getName().contains("MyLogFile_")){
long diff = new Date().getTime() - file.lastModified();
long cutoff = (numDays * (24 * 60 * 60 * 1000));
if (diff > cutoff) {
file.delete();
}
}
}
}
}
}
Чтобы этот код работал на вас, вам необходимо:
- Установить каталог для каталога, из которого вы хотите удалить файлы.
- установите переменную numDays в число дней, в течение которых файлы были удалены.
- Установите слово
MyLogFile_
для подписи файлов, которые вы хотите удалить.Установите это значение пустым, чтобы просмотреть все файлы.
Когда этот код не удастся вам:
Если системная дата изменяется на будущее или прошлое, (или происходит какая-то странная високосная секунда, изменение часового пояса или редактирование системной даты), тогда это может привести к безудержному удалению.Если даты в файлах искусственно манипулируются, то это может привести к разрушительному буйству.Если права доступа к файлам слишком ограничены, файл не будет удален.