• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:readdir におけるフルパスでのファイル名取得(1))

Perlでフルパスでファイル名を取得する方法

このQ&Aのポイント
  • Perlのreaddir関数を使用して、フルパスでファイル名を取得する方法を説明します。
  • 現在のディレクトリ直下のフォルダ「DATA」に含まれるテキストファイルのフルパス付きのファイル名を取得するために、readdir関数を使用することができます。
  • readdir関数を使用すると、指定したディレクトリ内のすべてのファイル名を取得できます。取得したファイル名にフルパスを付ける場合は、ディレクトリのパスを前に付け加えることで実現できます。

質問者が選んだベストアンサー

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

use Cwd; 私は、標準でインストールされているモジュールを利用しています。 cwd.pm で検索すると、ファイルが見付かりますので、それをスクリプトと同じフォルダに入れれば利用可能かな?(通常はlibフォルダに入れますが、設定されて無いようなので・・・) 試したことは無いので、ちょっと自信ないです。 -------------------------------- require 'getcwd.pl'; こちらの場合は、上記と同様 getcwd.pl で検索すれば、ファイルが見付かるので、それをスクリプトと同じフォルダに入れます。 こちらはこの方法で問題ないと思います。 -------------------------------- $myCurrentDir1=`cd`; chomp($myCurrentDir1); この方法もご存知ですよね(前後の質問より)。 これでも良いと思います。 Unix系なら $myCurrentDir1=`pwd`;

noname#95859
質問者

お礼

Venzouさん、ありがとうございます。 仕事においては、 $myCurrentDir1=`cd`; chomp($myCurrentDir1); この方法にて、進めております。 ディレクトリの操作を理解できたことは、良かったです。 ありがとうございます。

その他の回答 (1)

  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

use Cwd; $wd = Cwd::getcwd(); 又は require 'getcwd.pl'; $wd = &getcwd(); で、カレントディレクトリを調べて $fullpath = "$wd/DATA/$myfilename"; で、どうでしょう?

noname#95859
質問者

補足

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をうまく動かすためには、どのファイルを持ってくればよいでしょうか? 大変、申し訳ないですが、よろしくお願いいたします。

関連するQ&A