- ベストアンサー
Perlでフルパスでファイル名を取得する方法
- Perlのreaddir関数を使用して、フルパスでファイル名を取得する方法を説明します。
- 現在のディレクトリ直下のフォルダ「DATA」に含まれるテキストファイルのフルパス付きのファイル名を取得するために、readdir関数を使用することができます。
- readdir関数を使用すると、指定したディレクトリ内のすべてのファイル名を取得できます。取得したファイル名にフルパスを付ける場合は、ディレクトリのパスを前に付け加えることで実現できます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
use Cwd; 私は、標準でインストールされているモジュールを利用しています。 cwd.pm で検索すると、ファイルが見付かりますので、それをスクリプトと同じフォルダに入れれば利用可能かな?(通常はlibフォルダに入れますが、設定されて無いようなので・・・) 試したことは無いので、ちょっと自信ないです。 -------------------------------- require 'getcwd.pl'; こちらの場合は、上記と同様 getcwd.pl で検索すれば、ファイルが見付かるので、それをスクリプトと同じフォルダに入れます。 こちらはこの方法で問題ないと思います。 -------------------------------- $myCurrentDir1=`cd`; chomp($myCurrentDir1); この方法もご存知ですよね(前後の質問より)。 これでも良いと思います。 Unix系なら $myCurrentDir1=`pwd`;
その他の回答 (1)
- venzou
- ベストアンサー率71% (311/435)
use Cwd; $wd = Cwd::getcwd(); 又は require 'getcwd.pl'; $wd = &getcwd(); で、カレントディレクトリを調べて $fullpath = "$wd/DATA/$myfilename"; で、どうでしょう?
補足
venzouさん、ありがとうございます。 小生、PCの設定がうまく行っていないため、perlは、最低限の条件で動かしています。フォルダ"text"にPerl.exe、Perl300.dllのみ入れてあります。 案の定、下記のスクリプトは、はねられました。 -------myfullpath.pl------------------------- use Cwd; $wd = Cwd::getcwd(); $fullpath = "$wd/DATA/$myfilename"; print "$fullpath\n"; --------------------------------------------- C:\text>perl myfullpath.pl Can't locate Cwd.pm in @INC at myfullpath.pl line 1. BEGIN failed--compilation aborted at myfullpath.pl line 1. use Cwdをうまく動かすためには、どのファイルを持ってくればよいでしょうか? 大変、申し訳ないですが、よろしくお願いいたします。
お礼
Venzouさん、ありがとうございます。 仕事においては、 $myCurrentDir1=`cd`; chomp($myCurrentDir1); この方法にて、進めております。 ディレクトリの操作を理解できたことは、良かったです。 ありがとうございます。