• ベストアンサー

ディレクトリ操作

PERLでディレクトリの操作をするときの文法を教えていただけないでしょうか。 ディレクトリオープンは判るのですが・・・、 ディレクトリ作成・ディレクトリの名前変更 ディレクトリの削除・ディレクトリの存在確認 が判りません。どうかご指南お願いいたします。

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

  • ベストアンサー
noname#25358
noname#25358
回答No.3

 -e もしくは -d のあとのフォルダ名は、必ず "" か '' でかこってください。  そうでないと正しく動作しません。

takosan
質問者

お礼

有難うございます。 そうですね(汗) 言われてみれば当たり前の事でした(汗) お手数かけました。

その他の回答 (2)

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.2

ディレクトリの作成は mkdir、削除は rmdir、名前変更は rename でできます。 また、ディレクトリの確認には、ファイルテスト演算子の -d を使います。 mkdir ディレクトリ名, パーミッション rmdir ディレクトリ名 rename ディレクトリ名, 新ディレクトリ名 if (-d ディレクトリ名) {   # ディレクトリあり } else {   # ディレクトリなし } ディレクトリ名はパスでの指定もできますが、mkdir や rmdir で操作できるのは1階層のみです。 2階層以上のディレクトリを一度に作成・削除するには、File::Path モジュールの mkpath や rmtree を使うと便利です。 詳細は参考URLの左フレーム - 10章 - File::Path で確認してください。

参考URL:
http://www.bekkoame.ne.jp/~bero/docj/module_/
takosan
質問者

お礼

解答有難うございます #1さんへの返事にて解決しない事柄を書きました。 もしよりしければご指南ください。

noname#25358
noname#25358
回答No.1

 作成は mkdir、名前変更は rename、削除は rmdir で可能です。  存在確認は下記のソースです。 if ( -e $dir ) {   print "あり"; } else {   print "存在せず"; }  参考URLの「WWW入門」の中に「Perl」という項がありますので、参考にしてください。

参考URL:
http://tohoho.wakusei.ne.jp/
takosan
質問者

お礼

有難うございます。 存在確認以外のことはできました。 しかし、存在確認なのですが、 -----------------test.cgi--------------------- #!/usr/bin/perl print "Content-type: text/html\n\n"; print "ディレクトリ存在確認テスト:"; if(-e test){         #またはif(-d test){   print "testディレクトリあり"; } else{ print "ディレクトリなし"; } exit; ------------------------------------- ファイル構成 ./test.cgi ./test/ ------------------------------------- となっているのですが、このプログラムはなぜか、 「ディレクトリ無し」との結果が返ってきます。 WIN環境なのですが、それが原因でしょうか・・・? ファイルへのパスをフルパスにしてみたり、 ./test/としてみたり、./testとしてみたり、色々試したのですが、 うまくいきません・・・。

関連するQ&A

専門家に質問してみよう