Как подсчитать количество файлов в каталоге с помощью Java? Для простоты предположим, что в каталоге нет подкаталогов.
Я знаю стандартный метод:
new File(<directory path>).listFiles().length
Но это будет эффективно проходить через все файлы в каталоге, что может занять много времени, если количество файлов велико. Кроме того, я не забочусь о фактических файлах в каталоге, если их число больше некоторого фиксированного большого числа (скажем, 5000).
Я предполагаю, но не каталог (или его i- node в случае Unix) хранит количество файлов, содержащихся в нем? Если бы я мог получить этот номер прямо из файловой системы, это было бы намного быстрее. Мне нужно сделать эту проверку для каждого HTTP-запроса на сервере Tomcat до того, как сервер начнет выполнять реальную обработку. Поэтому скорость имеет первостепенное значение.
Я мог запускать демона каждый раз, чтобы очистить каталог. Я знаю это, поэтому, пожалуйста, не давайте мне этого решения.