Вы проверяете, используя логический результат file.delete (), удаляется файл или нет?Я думаю, ты должен сделать это.Кроме того, после удаления файла прервите цикл while и переходите к следующему файлу.Я изменил код, включая два приведенных выше вывода.
File directory = new File("XXXX/XXXX/XXXX/XXXX/");
if(!directory.isDirectory()) {
System.out.println("Given file is not a directory");
return;
}
String line;
int count = 0;
File[] fileList = directory.listFiles(File::isFile);
if(fileList != null && fileList.length > 0) {
for (File file : fileList) {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
while ((line = br.readLine()) != null) {
if (line.length() > 5) {
count++;
boolean wasFileDeleted = file.delete();
if(wasFileDeleted) {
System.out.println("The file "+file.getName()+" was deleted");
} else {
System.out.println("The file "+file.getName()+" deletion did not succeed");
}
break;
}
}
}
}
System.out.println("A total of "+count+" files were deleted");
Я смог удалить все файлы в каталоге, используя тот же код, который вы используете.Это было в макинтош.Пожалуйста, напишите, если вы получаете какие-либо ошибки при удалении.