1

こんにちは、次のようなフォルダ構造を持っています

mishel/      #Parent directory  
      mike1  #sub file of mishel  
      minni1 #sub file of mishel  
      rosy1  #sub file of mishel
        rocky/      #sub directory of mishel
             missi  #subfile of rocky
             marsh  #subfile of rocky
             milly  #subfile of rocky 
               monu/     #sub directory of rocky
                  mike  #sub file of monu
                  minni #sub file of monu
                  rosy  #sub file of monu

ここに私の質問があります。すべてのファイルとサブフォルダーを一度に自動的に削除するスクリプトを使用したいと考えています。

関数「rmdir(dirname)」を使用する場合、ディレクトリは空にする必要があります。サブディレクトリから親ディレクトリまで削除する可能性はありますか。

4

4 に答える 4

6

ディレクトリを引数として取る関数を書きます。その関数readdirにディレクトリで実行させます。readdir によって返された各項目について、それがファイルかどうかを確認します。ファイルの場合は削除します。ディレクトリの場合は、サブディレクトリを引数として関数を再度呼び出します。.と以外の項目がない場合は..、ディレクトリを削除してください。

于 2013-02-19T13:04:14.723 に答える
1
use Path::Class;
my $dir = dir('foo');
$dir->recurse(callback => sub {
    unlink $_[0] if !$_[0]->is_dir;
});
$dir->rmtree(0, 1);

または :

use File::Path ('rmtree');
rmtree('foo', 0, 0);

http://www.perlmonks.org/bare/?node_id=605930を参照してください

于 2013-02-19T23:50:50.713 に答える
0
perl -e 'system "find mishel -delete"'
于 2013-02-19T23:34:07.077 に答える
0

モジュールのremove_tree機能を試すFile::Path

于 2013-02-19T23:46:05.740 に答える