Составление полного списка файлов заданной папки на Perl
Пример скрипта на Perl, который:
1) осуществляет рекурсивное сканирование содержимого заданной папки;
2) сохраняет результаты сканирования (список файлов) в файл.
#!/usr/local/bin/perl
# (c) 2007, mikhail@turenko.net
use strict;
# имя папки для сканирования по умолчанию (. = текущая папка)
my $dir = ".";
# берем имя папки, если задано аргументом командной строки
$dir = $ARGV[0] if defined $ARGV[0];
# вызов процедуры сканирования содержимого папки
my @list = scan_dir ( $dir );
# вызов процедуры сохранения массива в файл
&save_list ( @list );
# --------------------------------------------------------------------
sub scan_dir
# процедура рекурсивного сканирования папки
{
- my ($dir) = @_;
my @list;
for my $file (glob($dir.'/*'))
{
- push @list, $file; # добавляем в массив 1 элемент
if (-d $file) # если файл является папкой
{
- my @sub = scan_dir($file);
push @list, @sub;
}
}
return @list;
}
# --------------------------------------------------------------------
sub save_list
# процедура сохранения списка в файл
{
- my (@list) = @_;
open(F, '>file_list.txt');
print F join("\n", @list) . "\n";
close(F);
}
# --------------------------------------------------------------------
__END__
Постоянная ссылка ·
Добавьте на news2.ru
Похожие записи:
- Парсинг и генерация RSS на PHP и Perl
- Сканирование документов в программах на Delphi (с применением библиотеки Easy TWAIN)
- Частотный (весовой) коэффициент или выбор случайного числа с учетом веса
- Чем паковать жабу
- Настраиваем DNS сервер на базе BIND



NeffskiY said,
Август 8, 2010 @ 13:16
скрипт зацикливается на одной папке…. сканировал им музыку, он задумался… добавил принт на просмотр папок, он вывел:
Киборг/2003 - Бритый и Злой
Киборг/2004 - О Войнах Руси
Киборг/2004 - Werwolf
Киборг/2003 - Бритый и Злой
Киборг/2004 - О Войнах Руси
Киборг/2004 - Werwolf
Киборг/2003 - Бритый и Злой
Киборг/2004 - О Войнах Руси
Киборг/2004 - Werwolf
Киборг/2003 - Бритый и Злой
Киборг/2004 - О Войнах Руси
Киборг/2004 - Werwolf
Киборг/2003 - Бритый и Злой
Киборг/2004 - О Войнах Руси
Киборг/2004 - Werwolf
Киборг/2003 - Бритый и Злой
Киборг/2004 - О Войнах Руси
Киборг/2004 - Werwolf
Киборг/2003 - Бритый и Злой
Киборг/2004 - О Войнах Руси
Киборг/2004 - Werwolf
Mikhail said,
Август 8, 2010 @ 22:14
Проверил ещё раз на сервере с Unix, вроде работает.
На какой операционной системе проводили тест? Unix или Windows?
Возможно, glob на windows работает как-то по-другому (?), например, выдаёт “.” в списке файлов в директории…
NeffskiY said,
Август 13, 2010 @ 16:08
Ubuntu 10.04… хз, тупо копи-паст…
уже другой код нашел, рабочий…
Mikhail said,
Август 13, 2010 @ 18:34
ок