考慮這個例子的VBScript片段:爲什麼FileExists不支持通配符?
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists("D:\Folder\File*.ext") Then ' Finds nothing!
fs.CopyFile "D:\Folder\File*.ext", "D:\OtherFolder\"
fs.Deletefile "D:\Folder\File*.ext"
End If
的FileExists
方法證明不是支持通配符(*
和?
)。不是FolderExists
。我預計wildards只是工作,因爲他們工作的優良在FileSystemObject
所有類似的方法:CopyFile
,CopyFolder
,MoveFile
,MoveFolder
,DeleteFile
,DeleteFolder
和Get*
文件名處理方法一樣GetAbsolutePathName
。
當然有辦法解決這個問題,像GetFolder
並遍歷其文件。但FileExists
會更可讀,方便,自然和一致。
的fs.FileExists
不一致的感覺就像一個API設計問題。可能是什麼原因?背後有一些想法嗎?
另一個解決方法是'如果Dir(「D:\ Folder \ File * .ext」)>「」Then'或者某些DOS命令 – Slai
@Slai'Dir'在VBScript中不存在。 – Tomalak