Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Gans Гость
|
Добавлено: Вт Июн 03 2003 14:29 Заголовок сообщения: Perl - Рекурсивный обход директорий |
|
|
Вопрос -- Как средствами perl произвести рекурсивный обход текущей директори (с заходом в подкаталоги) и запоминанием полных файлов в список.
в принципе нужно сделать так как в Unix: команда ls с ключем -R
делаю так : $scan_dir - указываем тут диру
opendir DIR, $scan_dir; @files = readdir DIR; closedir DIR;
foreach $line_file (@files) { .... действия с $line_file и $scan_dir ... }
Это работает, но только для текущей директории. Как обойти еще и каталоги. Может ключ какой есть? Подскажите плиз .. |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Вт Июн 03 2003 22:40 Заголовок сообщения: Обычно делается так (+) |
|
|
Найди книгу "Кенриган и Денис Ритчи. Программирование на C".
В интернете точно есть!
Как сейчас помню, там пример кода именно этой задачи есть. Помню потому что лет 10-12 назад спал с этой книжкой где-то с полгода.
Ну а перла от классического С не особо отличается. |
|
Вернуться к началу |
|
|
Agp
Зарегистрирован: 26.03.2003 Сообщения: 101
|
Добавлено: Ср Июн 04 2003 07:55 Заголовок сообщения: Обычно делается так (+) |
|
|
#!/usr/bin/perl -w
use File::Find;
sub com_file { print $File::Find::name, -d && '/', "\n"; } find(\&com_file, "/var/log"); |
|
Вернуться к началу |
|
|
Gans Гость
|
Добавлено: Чт Июн 05 2003 15:19 Заголовок сообщения: Re: Обычно делается так (+) |
|
|
Спасибо за столь элегантный вариант. Я сделал по-другому. Текст намного длиннее
делал с помощью .. ... opendir(DIR, $localpath); my @dirs_list = readdir(DIR); foreach $dirs_line (@dirs_list) { .... } ....
и т д. )))
Я Думал о том, чтобы использовать Find, но не смог найти путной доки как юзать эту функцию. Если не секрет, где можно взять путную доку ? У метода Find есть ключ по которому можно искать либо только директории либо файлы с определенным расширением? |
|
Вернуться к началу |
|
|
Agp
Зарегистрирован: 26.03.2003 Сообщения: 101
|
Добавлено: Пн Июн 09 2003 07:31 Заголовок сообщения: Обычно делается так (+) |
|
|
Здравствуйте Если вы внимательно пример смотрели, то заметили проверку, не каталог ли найденное? В том же ключе предлагается проверять и расширения файлов. |
|
Вернуться к началу |
|
|
|