![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_04.png?e8efa67)
前提:
current directory---perl scriptが存在する
data directory -----.\DATA¥
current directory直下のフォルダ"DATA"に含まれるファイル名(text file)の取得は、
------------------------------
opendir(DIR,"./DATA/");
@file=readdir(DIR);
closedir(DIR);
foreach $myfilename(@file){
if($myfilename=~/txt|TXT/){
print "$myfilename\n"; #確認用
}
}
で、できますが、フルパス付は、どのようにすればできるでしょうか?
現状、DOS promptで下記のようにやっています。
dir /s/b/o .\DATA\*.txt > filelist.dat
これを、perlで読み込んで、処理をやっています。
readdirをうまく使って、perlの中で済ませてしまいたいのです。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
use Cwd;
私は、標準でインストールされているモジュールを利用しています。
cwd.pm で検索すると、ファイルが見付かりますので、それをスクリプトと同じフォルダに入れれば利用可能かな?(通常はlibフォルダに入れますが、設定されて無いようなので・・・)
試したことは無いので、ちょっと自信ないです。
--------------------------------
require 'getcwd.pl';
こちらの場合は、上記と同様 getcwd.pl で検索すれば、ファイルが見付かるので、それをスクリプトと同じフォルダに入れます。
こちらはこの方法で問題ないと思います。
--------------------------------
$myCurrentDir1=`cd`;
chomp($myCurrentDir1);
この方法もご存知ですよね(前後の質問より)。
これでも良いと思います。
Unix系なら
$myCurrentDir1=`pwd`;
Venzouさん、ありがとうございます。
仕事においては、
$myCurrentDir1=`cd`;
chomp($myCurrentDir1);
この方法にて、進めております。
ディレクトリの操作を理解できたことは、良かったです。
ありがとうございます。
No.1
- 回答日時:
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をうまく動かすためには、どのファイルを持ってくればよいでしょうか?
大変、申し訳ないですが、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perl上からfindを使い検索した...
-
エラーログ「\\x8ew\\x92\\xe8...
-
VBAで巨大なファイルの途中から...
-
VBAでCSVファイルを途中行まで...
-
教えて!perlから.exeファイル...
-
パスから最後のディレクトリだ...
-
Excelマクロでフォルダ内のCSV...
-
エクセルVBA コードが同じでも...
-
Firefox で file:// で始まる U...
-
fopen64について
-
ExcelをCSV書き出す場合のシー...
-
ページ間での変数の受け渡し
-
ListBoxのデータを高速でファイ...
-
動かなくなったのでJavaソース...
-
AutoCADのスクリプト
-
エクセルVBAで素数だけを出力す...
-
【エクセル】改行無しテキスト...
-
shellのコマンド deffの差分の...
-
全角と半角文字が混在している...
-
window.open でのファイル指定方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エラーログ「\\x8ew\\x92\\xe8...
-
LWPのインストール
-
unlink 、renameが使えない理由
-
readdir におけるフルパスでの...
-
perl system関数 引数 フォルダ
-
Perlファイルテスト演算子が正...
-
perl上からfindを使い検索した...
-
フルパスについてご質問します
-
初心者 Hello worldをしたい
-
Template-Toolkitのテンプレー...
-
AuthUserFile用に登録するためには
-
PerlとUnixの関係
-
perlからのexcel読み込み
-
perlのローカルプログラムでデ...
-
ファイル操作について
-
配列を使ってファイル名のリネーム
-
perlが突然動かなくなりました
-
PG全くの初心者が、C言語での作...
-
VBAでCSVファイルを途中行まで...
-
VBAで巨大なファイルの途中から...
おすすめ情報