Как получить список всех файлов из структуры папок? - PullRequest
1 голос
/ 22 февраля 2010

Как мне получить список всех файлов в каталоге? Он должен давать мне только файлы, и он должен искать по всем подкаталогам, каталогам внутри них и т. Д. В основном, по всей структуре папок.

У меня есть тысячи файлов и каталогов. Я написал рекурсивную функцию, но она очень медленная. Есть какая-нибудь команда или трюк, которые могут сделать это быстро? Он должен работать в Windows и Mac, хотя.

Ответы [ 3 ]

2 голосов
/ 22 февраля 2010

Вы не уточнили, хотите ли вы что-то сделать со списком, просто сбросьте это на консоль или что-нибудь еще, и, самое главное, какой язык вы хотели бы использовать.

В большинстве стандартных библиотек есть средства для обхода деревьев каталогов. Например, в Python есть удобный os.walk (Google для этого, и вы найдете много примеров). Вы можете применять различные фильтры, чтобы получить только то, что вам нужно. Подобное средство доступно в Java и в Perl. Все три языка являются переносимыми.

При этом большая часть фактической обработки происходит на уровне ОС. Некоторые ОС медленнее, чем другие, облегчают обход файловой системы. Скорее всего, вы попадаете на диск, что добавляет медлительность на другой порядок.

2 голосов
/ 22 февраля 2010

Повторение файловой системы идет медленно. Особенно, если вы пытаетесь сделать его кроссплатформенным.

1 голос
/ 22 февраля 2010

хорошо, я нашел это, это намного быстрее, чем моя рекурсивная функция ...

http://www.rooftopsolutions.nl/article/177

...