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

Практический пример: определение размера каталога

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

Рекурсивные методы эффективны для решения задач с рекурсивными структурами. Предыдущие примеры можно легко решить без использования рекурсии. В этом разделе представлена ​​проблема, которую трудно решить без использования рекурсии. Проблема состоит в том, чтобы найти размер каталога. Размер каталога — это сумма размеров всех файлов в каталоге. Каталог d может содержать подкаталоги. Предположим, что каталог содержит файлы f1, f2, ... , fm и подкаталоги d1, d2, ... , dn, как показано на рисунке ниже.

Image description

Размер каталога можно определить рекурсивно следующим образом:

размер(d) = размер(f1) размер(f2) ... размер(fm) размер(d1) размер(d2) ... размер(dn)

Класс File можно использовать для представления файла или каталога и получения свойств файлов и каталогов. Для решения этой проблемы полезны два метода в классе File:

  • Метод length() возвращает размер файла.
  • Метод listFiles() возвращает массив объектов File в каталоге.

Приведенный ниже код представляет собой программу, которая предлагает пользователю ввести каталог или файл и отображает его размер.

Image description

Если объект file представляет каталог (строка 20), каждый подэлемент (файл или подкаталог) в каталоге рекурсивно вызывается для получения его размера (строка 23). Если объект file представляет файл (строка 26), размер файла получается и добавляется к общему размеру (строка 27).

Что произойдет, если будет введен неправильный или несуществующий каталог? Программа определит, что это не каталог, и вызовет file.length() (строка 27), которая вернет 0. Таким образом, в этом случае метод getSize вернет 0.

Чтобы избежать ошибок, рекомендуется проверять все случаи. Например, вам следует протестировать программу на предмет ввода файла, пустого каталога, несуществующего каталога и несуществующего файла.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/paulike/case-study-finding-the-directory-size-2946?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3