«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно рассчитать размер файла или папки в Java?

Как эффективно рассчитать размер файла или папки в Java?

Опубликовано 8 ноября 2024 г.
Просматривать:995

How do you efficiently calculate the size of a file or folder in Java?

Получение размера файла или папки в Java

Получение размера файла или папки — обычная задача при работе с файлами на Яве. Вот как это можно эффективно сделать:

Получение размера файла

Чтобы получить размер файла, вы можете использовать метод length() в java.io .Файловый объект. Возвращает длину файла в байтах или 0, если файл не существует.

java.io.File file = new java.io.File("myfile.txt");
file.length();

Получение размера папки

Получить размер папки не так просто, как получить размер файла. В Java нет встроенного способа сделать это. Вместо этого вам нужно рекурсивно перемещаться по дереву каталогов, накапливая размер папки для каждого подкаталога и файла:

public static long folderSize(File directory) {
    long length = 0;
    for (File file : directory.listFiles()) {
        if (file.isFile())
            length  = file.length();
        else
            length  = folderSize(file);
    }
    return length;
}

Внимание: В приведенном выше методе могут возникнуть проблемы, если Directory.listFiles() возвращает значение null или присутствуют символические ссылки.

Альтернатива:

Для более точного расчета размера папки рассмотрите возможность использования сторонней библиотеки, такой как JWalk или Apache Commons IO. Эти библиотеки предоставляют более надежные и комплексные решения для расчета размеров папок в Java.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3