人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlでディレクトリ内のファイルをすべて消したい。

ディレクトリの中に入っているファイルをすべて消したいです。
ググって2通り試してみたのですがうまくいきませんでした。
(どちらもエラーは出ずただ消えないだけ…)

?
$Deleir = './img';
opendir(DIR, $Deleir);
unlink map { $Deleir.'/'.$_ } grep { -f $Deleir.'/'.$_ } readdir DIR;
closedir(DIR);

?
$Deleir = './img';
unlink(glob("$Deleir/*.*"));

どのようにしたらよいでしょうか?

●質問者: 匿名質問者
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● 匿名回答1号

たとえば

$|=1;
my $Deleir = './dum';
for my $file(glob("$Deleir/*.*")) {
print "$file ... ";
unlink $file or die "$!";
print "done\n";
}

のようにすれば削除できない理由が分かるかも


2 ● 匿名回答3号
use File::Path 'rmtree';

$target = './img'; # 削除対象のディレクトリ

rmtree($target);

3 ● 匿名回答4号

File::Path モジュールの rmtree を使ってはいかがですか?
http://d.hatena.ne.jp/perlcodesample/20100409/1270894115
・ディレクトリ毎消える
・サブディレクトリも消える
という違いがあるので、意図されるものとは異なるかもしれませんが。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ