Perlでtreeコマンドのような指定したディレクトリ以下の
ディレクトリツリーを表示(取得)するモジュールなどはないでしょうか。
CPANから探してみたのですが英語の上に実行サンプルが載って
いなかったりと該当するものかどうかの判断ができません。
名前や説明から該当しそうな(?)Perlモジュール
・Dir::Which
・File::CheckTree
・File:Find
・File::Path
・File::Searcher
・Tree::File
など
因みに、環境非依存にしたいのでexecやバッククオートを使用したりは
できません。
No.2ベストアンサー
- 回答日時:
確かにいっぱいおかしかったので修正:
sub treelist_ {
my ($dir, $lv) = @_;
opendir my $dh, $dir;
my @files = grep { $_ !~ /^\.\.?$/; } readdir $dh;
closedir $dh;
for my $file (@files) {
print ">" x $lv, "$dir/$file\n";
treelist_("$dir/$file", $lv+1) if -d "$dir/$file";
}
}
sub tree {
for my $dir (@_) {
print "$dir\n";
treelist_($dir, 0);
}
}
tree('.');
これでどうだ.
No.1
- 回答日時:
使ったことはないんですが, ちょっと CPAN をあさってみたら File::Find::Node あたりが使えそうな気もします.
ま~, ぶっちゃけ言ってしまうと「努力と根性」だけでもなんとかなるんですが....
sub treelist_ {
my ($dir, $lv) = @_;
opendir my $dh, $dir;
my @files = grep { $_ !~ /^\.\.?$/; } readdir $dh;
closedir $dh;
my $file (@files) {
print ">" x $lv, "$file\n";
treelist_("$dir/$file", $lv+1) if -d "$dir/$file");
}
}
sub tree {
for my $dir (@_) {
print "$dir\n";
treelist_($dir, 0);
}
という感じでも, それなりになんとかなるだろうし.
この回答への補足
どうもありがとうございます。
なんか上記のサンプルに所々、(記述の)誤りがあったようなので
修正して実行してみたのですがそれでもうまく動かないようです。
もう少し内容を調査して調べてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- Mac OS PATHを使ってcdなどで簡単に移動できるようになりたい 3 2023/05/13 14:22
- UNIX・Linux Linuxの実行結果を修正したいです。 6 2022/11/22 12:57
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- UNIX・Linux 空のディレクトリで dir を行ったとき 4 2023/05/05 17:54
- UNIX・Linux ブレース展開の使い方での質問です 2 2023/07/15 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
readdir()で得られるファイル・...
-
batファイルでrenameができませ...
-
Windowsで複数のファイルを同じ...
-
C言語でファイル名を取得
-
Windows漢字フォルダ名の扱い(...
-
fgets で値が取得できない
-
ExcelをCSV書き出す場合のシー...
-
window.open でのファイル指定方法
-
動かなくなったのでJavaソース...
-
awkスクリプトでダブルクォーテ...
-
全角と半角文字が混在している...
-
cgi.pm を使用してファイルUP時...
-
Pythonで非日本語のUnicode文字...
-
一行だけ読込
-
utf8使用時のフォーム入力文字...
-
VBAでCSVファイルの特定行を書...
-
csvファイルの横方向への改行に...
-
sprintfについて
-
ifstream/ofstream について
-
バッチファイルの作り方(CSV→...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
batファイルでrenameができませ...
-
FindFirstFileとFindNextFileで...
-
ディレクトリの判別
-
Windowsで複数のファイルを同じ...
-
vba dir の相対パス
-
パスから最後のディレクトリだ...
-
chdirがうまくできない
-
dos変数の%~dp0は powershellで...
-
テキストファイルの結合
-
Perlで フォルダ内の全て...
-
readdir()で得られるファイル・...
-
makefileでファイルをコピー(...
-
サーバーにある特定の拡張子フ...
-
ディレクトリツリーの表示
-
C言語でファイル名を取得
-
ファイル名と更新日付の取得に...
-
複数ファイルの読み込みについて
-
LinuxのC言語で、ファイル名の...
-
Director拡張子
-
ディレクトリ名を取得したい
おすすめ情報