URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8847
[ Назад ]

Исходное сообщение
"подсчет размера файлов"

Отправлено Zaltic , 08-Сен-10 10:29 
В Perl совсем почти не разбираюсь, возникла срочная задача исправить работающий скрипт.
Прошу помочь тех кто в этом разбирается, т.к. задача тривиальная. Разбираться самому с языком уйдет много времени, а это критично. Нужно вставить кусок кода в  цикл.
есть переменная email, есть каталоги /var/spool/imap/user/$email
в данном каталоге нужно выбрать все файлы по шаблону, пример 164458. (т.е. произвольное кол-во  цифр и в конце точка) и посчитать их суммарный объем в байтах, поместив итоговую сумму в переменную used.

Содержание

Сообщения в этом обсуждении
"подсчет размера файлов"
Отправлено cryo , 08-Сен-10 13:01 
Примерно так:
$path = "/var/spool/imap/user";
opendir(DIR, $path);
foreach (readdir DIR) {
   next
      unless (/^\d+\./);
   $total_size += (stat("$path/$_"))[7];
}
closedir DIR;

print "Total Size: $total_size\n";


"подсчет размера файлов"
Отправлено Zaltic , 09-Сен-10 13:00 
а как исключить несуществующий $path ?
чтобы вот такого не было:
readdir() attempted on invalid dirhandle DIR at ./usage.pl line 56.


"подсчет размера файлов"
Отправлено NuINu , 09-Сен-10 21:25 
>а как исключить несуществующий $path ?
>чтобы вот такого не было:
>readdir() attempted on invalid dirhandle DIR at ./usage.pl line 56.

банально проверяйте что возвращает opendir
почитать можно здесь
perldoc -f opendir