|
▼初級者 さん:
おはようございます。
>dir関数でワイルドカードを使用してファイルを検索しているのですが、
>思った結果が得られません。アドバイスを頂けないでしょうか?
めったにDir関数は使わないのですが(というかDir関数を使うような仕様のプログラムがあまりない、極たまに使う場合は FSOですねえ)、
いくつか問題がありそうですねえ!!
>
>
>下記のソース(抜粋して掲示板用に修正しています)では
>ワイルドカードで6文字指定して、あとは拡張子、としている
>つもりんなんですけど、
> "FILENAME"_2.gif ※FILENAMEは任意の文字列
>とかが検索されます。
>
>記述が悪いのか、dir関数や、ワイルドカードの仕様が
>わかっていないのか、誰か教えてもらえませんか?
>
>
>'FILE_PATH:ファイルのパス
>'FILE_NAME:ファイルの名前
>Dim strHoge as string
>Dim strName as string
Dim fso As Object
Set fso = CreateObject("scripting.filesystemobject")
>'"yymmdd.*"を検索
>strHoge = FILE_PATH & "\" & FILE_NAME & "_??????.*"
>strName = Dir(strHoge, vbNormal + vbReadOnly + vbHidden + vbSystem)
>Do Until strName = ""
> MsgBox = strName
Debug.Print fso.getfile(FILE_PATH & "\" & strname).shortname
'本当は↑このショートネームで比較しているのでは??
'きちんと検証してませんが、調べてみてください
> '次のファイルを検索
> strName = Dir
>Loop
Dir関数では、dir("d:\xxxx\yyy\*.*")
のように全てのファイル名を取得し、
これをLike演算子で比較してみては??
いかがですか?
|
|