Ответ 1
Ну, file.delete()
должно быть достаточно (внутренне реализовано как собственный метод)
Моя проблема в том, что у меня есть приложение, в котором написано много относительно (100-500 кб) небольших CSV файлов (десятки и сотни тысяч). Содержимое этих файлов затем загружается в базу данных через вызов загрузчика sql (его oracle db), и с этим я должен жить.
Итак, мне нужно время от времени удалять эти маленькие файлы, чтобы они не могли съесть все пространство. Я хотел бы добавить это к активности, которая записывает эти файлы и загружает их в db в качестве последнего шага завершения.
Мой вопрос: как в java можно удалить кучу небольших файлов с меньшими затратами на производительность?
Спасибо заранее! Майкл
Ну, file.delete()
должно быть достаточно (внутренне реализовано как собственный метод)
Я предлагаю проверить библиотеку Apache Commons IO. У них есть довольно полезные методы для удаления файлов в классе FileUtils.
Вы можете найти его на порядок быстрее, если вы выложите его и удалите систему. Вы должны были бы ударить точку остановки (где файлы не обрабатывались), затем выложить и удалить "*" или. или что бы то ни было для вашей ОС.
(Обратите внимание: это делает вашу программу ОЧЕНЬ зависимой!)
Убедитесь, что в Windows и Mac вы обходите функцию trashcan!
Хорошая вещь о дель. или rm * заключается в том, что они ДОЛЖНЫ выполнять пакетную операцию, а не повторно открывать, изменять и закрывать каталог.
Вы также можете записывать имена файлов с шаблоном типа a001, a002, a003,... и когда вы достигаете a999, вы переходите к b001 и удаляете *.
FileUtils.cleanDirectory(new File("/usr/share/test")); //linux
FileUtils.cleanDirectory(new File("C:\\test")); //windows
Можно использовать метод java.nio.file.Files
ниже
delete(Path path)
deleteIfExists(Path path)
Для получения дополнительной информации обратитесь к этой статье