• 締切済み

大文字小文字を無視した-fや-d

すみませんが教えてください。 -f foo/Hoge/AAA.gif とか -d Foo/hoGe/Aaa.gif とかでファイルやディレクトリの 存在チェックを行う際に、大文字、小文字を一切無視する には、どのような方法が考えられますでしょか? つまり、例えばfoo/Hoge/AAA.gifというファイル名が 渡された時に例えばFoo/hoGe/Aaa.gifという ファイルが存在していれば、trueを返すような関数が ほしいのです。 どのように実現すればいいでしょうか? どなたかアドバイスをいただけないでしょうか

みんなの回答

  • sando
  • ベストアンサー率38% (24/62)
回答No.3

いきなりカレントからのディレクトリツリーを構成するのは乱暴なので、 @pathlist = split /\//,$path; で調べるファイル名を配列として抜き出して 先頭からreaddirで拾ってきたファイルリストとi修飾したマッチングを行っていったほうがいいんでないかと思います

  • dd44
  • ベストアンサー率28% (151/521)
回答No.2

lc関数を使って、引数で与えられたファイルパスと、ディレクトリから取ってきたファイル一覧をすべて小文字に変換する。 それからマッチング。 それからreaddirで取ってきた(←もちろん下位階層まで再帰的に)ファイル一覧一つ一つとマッチング・・でなんとかならないかな? もっとよい方法はありそうだけど。

  • sando
  • ベストアンサー率38% (24/62)
回答No.1

ファイルテスト演算子では無理かと思います。 引数をsplitで分けてreaddirで順番にディレクトリを調べていけばできるとは思います

関連するQ&A

専門家に質問してみよう