| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Список файлов в директории |
| Автор: Legafor 20.7.2004, 06:57 |
| Суть проблемы: есть путь к директории, необходимо получить имена всех файлов в ней хранящихся. (что-то типа команды dir в ДОСе, только она еще и имена директорий выводит, это не нужно) Подскажите пожалуйста, как реализовать на Perl. Спасибо заранее. |
| Автор: Secandr 20.7.2004, 08:16 |
| opendir readdir closedir |
| Автор: GoodBoy 20.7.2004, 09:56 | ||
|
| Автор: Secandr 20.7.2004, 10:16 |
| вот тут два скрипта. http://forum.vingrad.ru/index.php?showtopic=26477 |
| Автор: dimes 20.7.2004, 10:36 | ||||||
Я могу ошибаться, но по-моему это не вернет файлы без расширения и скрытых файлов возможно проще зделать так:
|
| Автор: GoodBoy 20.7.2004, 10:59 | ||||||||
можно попробовать так:
|
| Автор: Legafor 20.7.2004, 11:28 | ||||
Спасибо большое, проблема решена...........
Еще раз спасибо! |
| Автор: korob2001 20.7.2004, 17:01 | ||
Э-эээ подожди. Дело в том, что вариант с glob менее эфективен чем opendir(), readdir() и closedir(). Если в каталоге будет слишком много файлов, то glob не вернёт все файлы, так как она имеет ограничение на кол-во файлов, в отличии от readdir(). |
| Автор: Secandr 21.7.2004, 08:31 |
| Я привёл ссылку на скрипт, в котором идёт поиск всех файлов в данном и во вложеных каталогах. А упростить его дело не трудно |
| Автор: y0sh1 26.8.2004, 10:57 |
| Как подсчитать в директории объём всех файлов скажем с расширением *.doc!? Те по маске... Заранее спасибо! |
| Автор: korob2001 26.8.2004, 11:09 | ||
Помоему это уже другая тема. Если есть желание что бы кто-нибудь ответил, создайте новую тему. |
| Автор: GoodBoy 26.8.2004, 11:17 | ||
|
| Автор: y0sh1 26.8.2004, 12:49 |
| GoodBoy спасибо... постараюсь прикрутить к основному скрипту... |
| Автор: y0sh1 30.8.2004, 13:01 | ||
При рекурсивном просмотре директории это делается как-то медлено...
Может есть конструкция работующая быстрее!? Или они в целом более менее равны по быстродействию!? |
| Автор: ElectricalStorm 30.8.2004, 17:29 | ||
я не думаю что это быстрее ... но зато короче ;)
|
| Автор: y0sh1 30.8.2004, 18:25 |
| понял, спасибо... попытаюсь разобраться... |
| Автор: olexdj 4.6.2013, 05:28 | ||
| Подскажите плиз, есть директория с картинками вида: 124134.jpg 123356.jpg 12413545.jpg 15346356.jpg 124123556.jpg Короче "наборцифр.jpg" Цифры не попорядку, могут быть дырки. Мне надо узнать самую большую цифру, чтобы писать в директорию новую картинку с большей цифрой на единицу. Подскажите плиз, как наиболее эффективно это сделать. Спасибо заранее!!!!! Добавлено через 6 минут и 29 секунд Пока сваял такого монстра:
Но это ж ужас скоко работы для одной циферки (((( Да, картинок сейчас около 25000 в директории, будет еще больше... |
| Автор: arto 4.6.2013, 08:03 |
| # for i in {1..25000}; do touch $RANDOM.jpg; done # time perl -le 'open F,"ls -1v *.jpg|";@a=<F>;chomp@a;print ($a[-1])' 32766.jpg Real: 0.08s User: 0.00s System: 0.00s Percent: 4%% Cmd: perl -le 'open F,"ls -1v *.jpg|";@a=<F>;chomp@a;print ($a[-1])' # time perl -le 'opendir D,"."; print ((sort{$b<=>$a}map{(split"\\.",$_)[0]}grep/\.jpg/,readdir D)[0].".jpg")' 32766.jpg Real: 0.03s User: 0.02s System: 0.01s Percent: 87%% Cmd: perl -le # Добавлено через 5 минут и 49 секунд ну и самое простое -- записывать имя самого последнего созданного файла. |