ファイルまたはフォルダの存在を確認し、その属性を返します。
AttributeString := FileExist(FilePattern)
型:文字列
単一のファイルまたはフォルダの名前、または"C:\Temp\*.tmp"のようなワイルドカードパターンです。FilePatternは、絶対パスが指定されない場合、A_WorkingDirにあるとみなされます。
アスタリスク(*)とクエスチョンマーク(?)は、ワイルドカードとして使用できます。*は0以上の文字と、クエスチョンマークは?1文字とマッチします。使用例:
*.*と*は、全てのファイルにマッチします。*.htmは、.htmや.htmlなどの拡張子を持つファイルにマッチします。*.は、拡張子がないファイルにマッチします。log?.txtは、例えばlog1.txtにはマッチしますが、log10.txtにはマッチしません。*report*は、ファイル名に"report"を含むあらゆるファイルにマッチします。型:文字列
この関数は、最初にマッチしたファイルまたはフォルダの属性を返します。この文字列はRASHNDOCTLの部分集合で、各文字は次のような意味を持っています:
ファイルに属性がない場合(稀)には、「X」が返されます。ファイルやフォルダが見つからない場合は、空の文字列が返されます。
Note that a wildcard check like InStr(FileExist("MyFolder\*"), "D") with MyFolder containing files and subfolders will only tell you whether the first matching file is a folder, not whether a folder exists. To check for the latter, use DirExist, e.g. DirExist("MyFolder\*").
FileGetAttribとは異なり、FileExistはワイルドカードパターンをサポートし、一致するファイルが存在する場合は常に空でない値を返します。
空文字列は「false」とみなされるため、この関数の戻り値は常に準ブール値として使用することができる。例えば、if FileExist("C:\My File.txt")という文は、ファイルが存在すれば真、そうでなければ偽となります。
FilePatternはワイルドカードを含むことができるので、FileExistは他の関数やプログラムで使用するファイルパスの検証には適さないかもしれません。例えば、FileExist("*.txt")は、「*.txt」が有効なファイル名でないにもかかわらず、属性を返す場合があります。このような場合は、FileGetAttribを使用することが望ましい。
DirExist、FileGetAttrib、ファイルループ
ディレクトリに少なくとも1つのテキストファイルが存在する場合、メッセージボックスを表示します。
if FileExist("D:\Docs\*.txt")
MsgBox "At least one .txt file exists."