2013年1月1日火曜日

[Perl]フォルダ操作

フォルダの作成・削除
use strict;
use utf8;
use Term::ReadKey;
ReadMode 'cbreak';

# フォルダ作成
print "Make directory - test\n";
mkdir("./test", 0777) or die "Failed to make directory: $!";
print "Hit any key\n";
ReadKey(0);

# フォルダ削除
print "Remove directory - test\n";
rmdir("./test") or die "Faild to remove directory: $!";
フォルダ内にファイルがある場合の削除
use strict;
use utf8;
use Term::ReadKey;

my $dir = "test";
my $file;
ReadMode 'cbreak';

# フォルダ作成
print "Make directory - $dir\n";
mkdir("./" . $dir) or die "Failed to make directory: $!";

# ファイルを置く
open(FILE, "> " . $dir . "/test1.txt");
print FILE "This is test file1\n";
close(FILE);
open(FILE, "> " . $dir . "/test2.txt");
print FILE "This is test file2\n";
close(FILE);
print "Hit any key\n";
ReadKey(0);

# フォルダ内を空にする
print "Remove all file in the directory\n";
opendir(DH, $dir) or die "$!";
while ($file = readdir DH) {
  next if ($file =~ /^\.{1,2}$/);
  print $dir . "/" . $file . "\n";
  unlink $dir . "/" . $file;
}
# ここで closedir しないとプロセスがディレクトリの handle を
# 持ち続けてしまい、次の rmdir 操作が Permission denied となってしまう
closedir(DH);

# フォルダ削除
print "Remove directory - $dir\n";
rmdir("./" . $dir) or die "Faild to remove directory: $!";

0 件のコメント:

コメントを投稿