Perlにディレクトリ内のすべてのファイルとディレクトリをリストする関数はありますか? これを行うにはJavaにFile.list()
があることを覚えていますか? Perlに匹敵するメソッドがありますか?ディレクトリ内のすべてのファイルをPerlでリストするにはどうしたらいいですか?
答えて
あなたが与えられたディレクトリの内容を取得したい場合は、とだけ(つまりなしサブディレクトリ)、最良の方法は、/のreaddir/closedirのをopendir関数を使用することです:
opendir my $dir, "/some/path" or die "Cannot open directory: $!";
my @files = readdir $dir;
closedir $dir;
ます。また、使用することができます。
my @files = glob($dir . '/*');
私の意見では、グロブはかなり複雑なので(結果を自動的にフィルタリングすることができます)、それを使ってディレクトリのすべての要素を取得するのは簡単すぎるようです。
あなたはディレクトリとサブディレクトリのすべてのコンテンツを取得する必要がある一方、1つの標準液は基本的にあります:
use File::Find;
my @content;
find(\&wanted, '/some/path');
do_something_with(@content);
exit;
sub wanted {
push @content, $File::Find::name;
return;
}
これはそれを行う必要があります。
my $dir = "bla/bla/upload";
opendir DIR,$dir;
my @dir = readdir(DIR);
close DIR;
foreach(@dir){
if (-f $dir . "/" . $_){
print $_," : file\n";
}elsif(-d $dir . "/" . $_){
print $_," : folder\n";
}else{
print $_," : other\n";
}
}
絶対パスのディレクトリに戻っ必要な接頭辞場合はopendir関数(故障のためのopendir確認...か死ぬべきだ「エラーメッセージ:$! ")。また、私は何かを逃していますか? Win32 :: GUI :: DoEvents()は何ですか? (私は質問に関連するものは何も表示されません) – Telemachus
これは、私がやりたいと思っていない何かのための通常のexpresionsを覚えていないか、欲しいのではない最善の方法です。リスト($ dir 、 "f");ファイル "d"のディレクトリ、ありがとう投稿 – Geomorillo
readdir()です。
チェックhttp://perldoc.perl.org/functions/readdir.html
opendir(DIR, $some_dir) || die "can't opendir $some_dir: $!";
@dots = grep { /^\./ && -f "$some_dir/$_" } readdir(DIR);
closedir DIR;
それともFile::Find
use File::Find;
finddepth(\&wanted, '/some/path/to/dir');
sub wanted { print };
が存在する場合には、サブディレクトリを通過します。
これは、あなたがディレクトリから(サブディレクトリを含む)すべての一覧を表示します順序で、および属性とともに指定します。私はこのことをするために何かを探していました。私はこの全体の議論から自分のものを少しずつ取り出してまとめました。楽しい!!
#!/usr/bin/perl --
print qq~Content-type: text/html\n\n~;
print qq~<font face="arial" size="2">~;
use File::Find;
# find(\&wanted_tom, '/home/thomas/public_html'); # if you want just one website, uncomment this, and comment out the next line
find(\&wanted_tom, '/home');
exit;
sub wanted_tom {
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat ($_);
$mode = (stat($_))[2];
$mode = substr(sprintf("%03lo", $mode), -3);
if (-d $File::Find::name) {
print "<br><b>--DIR $File::Find::name --ATTR:$mode</b><br>";
} else {
print "$File::Find::name --ATTR:$mode<br>";
}
return;
}
アーヘ、私の目! – javs
あなたが私のようなスラッカーである場合は、File::Slurpモジュールを使用することができます。 read_dir機能意志は、配列にディレクトリの内容を読み込み、ドットを削除し、ファイルが
my @paths = read_dir('/path/to/dir', prefix => 1) ;
- 1. ディレクトリ内のすべてのファイルのリストを取得する(Perl)
- 2. pythonでディレクトリ内のすべてのファイルを開くにはどうしたらいいですか?
- 3. ディレクトリ内のすべてのMP3ファイルを見つけるにはどうしたらいいですか?
- 4. すべての.XXXファイルをディレクトリで検索し、Perlでそれらのリストを取得するにはどうすればよいですか?
- 5. Emacs内で開いているファイルのリストを見るにはどうすればいいですか?あるいは、Emacs内のディレクトリをブラウズしますか?
- 6. dlmreadを使ってフォルダ内のすべてのファイルを読むにはどうしたらいいですか?
- 7. bashのファイル内からリストをロードするにはどうしたらいいですか?
- 8. ディレクトリからすべてのPHPファイルをインクルードするにはどうすればいいですか?
- 9. ディレクトリ内で空のファイルをすべて削除するにはどうすればよいですか?
- 10. 250,000ファイルのディレクトリに対してPerlのreaddirをスピードアップするにはどうすればよいですか?
- 11. UNIX/Linuxでは、絶対パスを使用してディレクトリ内のすべてのディレクトリのリストを表示するにはどうすればよいですか?
- 12. WEB-INFディレクトリのファイルを読むにはどうしたらいいですか?
- 13. PerlのSubversionプリコミットフックからコミットされたファイルにアクセスするにはどうしたらいいですか?
- 14. Perlで同時に複数のリストを反復処理するにはどうしたらいいですか?
- 15. ディレクトリ内のすべてのスクリプトの種類を調べるにはどうすればいいですか?
- 16. Perlがあるディレクトリから別のディレクトリにファイルをコピーしています
- 17. Notepad ++でファイルからすべてのスペースを削除するにはどうしたらいいですか?
- 18. JSのすべてのリストをULでチェックするにはどうしたらいいですか?
- 19. [Python]リスト内のタプルを昇順/降順で並べ替えるにはどうしたらいいですか?
- 20. PerlでXML :: Simpleを使って設定ファイルを解析するにはどうしたらいいですか?
- 21. perlで関数をインポートするにはどうしたらいいですか?
- 22. リポジトリ内のすべてのブランチからディレクトリ/ファイルを削除するにはどうすればよいですか? (それぞれ新しいコミットとして)
- 23. perlの新しいディレクトリにコピーして移動するファイルのリストを使用
- 24. サブディレクトリ内の1つのファイルを除いて、ディレクトリ内のすべてのファイルをブロックするにはどうすればよいですか?ここ
- 25. リストのすべての項目をテストするにはどうしたらいいですか?
- 26. シェルスクリプトをPerlに変換するにはどうしたらいいですか?
- 27. Windows 8にPerlをインストールするにはどうしたらいいですか?
- 28. シェルスクリプトをPerlに変換するにはどうしたらいいですか?
- 29. ディレクトリ内のファイルを作成順に再帰的にリストするにはどうすればよいですか?
- 30. 巨大なリスト(.txt)で画像にテキストを追加し、すべての画像用にディレクトリを作成するにはどうしたらいいですか?
私はいつもreaddirがパス全体ではなく相対ファイル名のリストを返すことを忘れています! –
この作業のためにグロブを使用しないようにしてくれてありがとう。これに対してglobbingを使用することのもう一つの欠点は、隠しファイル(ドットで始まるファイル)が見つからないことです。 – josch