2.10.8. ディレクトリ#

Perl ではディレクトリを操作するための関数が多く用意されています。ディレクトリの作成や削除、移動、ディレクトリ内のファイル一覧の取得など、さまざまな操作を行うことができます。

2.10.8.1. ディレクトリの作成#

ディレクトリを作成するには mkdir 関数を利用します。ディレクトリ作成時にはパーミッションもあわせて指定できます。次のコードは、/home/user/tmp_dir ディレクトリが存在するかどうかを確認し、存在しなければ新たに作成する例です。

my $path = '/home/user/tmp_dir';

if( -d $path ){
   print "The directory is existed.\n";
}else{
   mkdir 0755, $path;
}

2.10.8.2. ディレクトリの削除#

ディレクトリ内にファイルが残っている場合、そのディレクトリを削除することはできません。そのため、削除する前にディレクトリ内のすべてのファイルをあらかじめ削除しておく必要があります。

unlink(glob("$path/*"));
rmdir $path;

2.10.8.3. ディレクトリのパーミッション変更#

ディレクトリのパーミッションを変更するには chmod 関数を利用します。

my $dir = './tmpl_dir';
chmod 0777, $dir;

2.10.8.4. ファイル一覧の取得#

ディレクトリ内に存在するファイル一覧を取得する場合は、opendir 関数と readdir 関数を利用します。

opendir(my $dh, "./");
foreach(my $f = readdir($dh)){
    print "$f";
}
closedir($dh);

また、glob 関数を利用すると、特定の拡張子を持つファイルのみを取得することも可能です。

my @pdb_files = glob "*.pdb";