ディレクトリの中に入っているファイルをすべて消したいです。
ググって2通り試してみたのですがうまくいきませんでした。
(どちらもエラーは出ずただ消えないだけ…)
①
$Deleir = './img';
opendir(DIR, $Deleir);
unlink map { $Deleir.'/'.$_ } grep { -f $Deleir.'/'.$_ } readdir DIR;
closedir(DIR);
②
$Deleir = './img';
unlink(glob("$Deleir/*.*"));
どのようにしたらよいでしょうか?
たとえば
$|=1; my $Deleir = './dum'; for my $file(glob("$Deleir/*.*")) { print "$file ... "; unlink $file or die "$!"; print "done\n"; }
のようにすれば削除できない理由が分かるかも
use File::Path 'rmtree'; $target = './img'; # 削除対象のディレクトリ rmtree($target);
File::Path モジュールの rmtree を使ってはいかがですか?
http://d.hatena.ne.jp/perlcodesample/20100409/1270894115
・ディレクトリ毎消える
・サブディレクトリも消える
という違いがあるので、意図されるものとは異なるかもしれませんが。
コメント(1件)