Как получить свойства каталога, используя скрипт perl? - PullRequest
0 голосов
/ 05 августа 2010

Я хочу получить подробную информацию о каталоге, например количество файлов и подкаталогов в нем, а также разрешения для них.это легко сделать на машинах Linux, используя обратные галочки для выполнения команды. Но есть способ сделать платформу скриптов независимой

спасибо:)

Ответы [ 2 ]

3 голосов
/ 05 августа 2010

Вы можете использовать дескрипторы каталогов ( opendir и readdir ), чтобы получить содержимое каталогов, и File :: stat , чтобы получить разрешения

2 голосов
/ 05 августа 2010

Возможно, вы захотите использовать Path :: Class . Это дает вам простой интерфейс, а также обрабатывает все кроссплатформенные вещи (включая разницу между «\» и «/» на вашей платформе) для вас.

   use Path::Class qw(file dir);

   my $dir = dir("/etc");

   my $dir_count = 0;
   my $file_count = 0;

   while (my $file = $dir->next) {
       # $file is a Path::Class::File or Path::Class::Dir object

       if ($file->is_dir) {
         $dir_count++;
       } else {
         $file_count++;
       }

       my $mode = $file->stat->mode;
       $mode = sprintf '%o', $mode;  # convert to octal "0755" form
       print "Found $file, with mode $mode\n";
   }
   print "Found $dir_count dirs and $file_count files\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...