Рассмотрим этот пример 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
было бы более читаемым, удобным, естественным и последовательным.
Несоответствие выглядит как проблема проектирования API. Что может быть причиной? Есть ли какая-то идея?
Еще одним обходным решением может быть 'If Dir (" D: \ Folder \ File * .ext ")>" "Then' или, может быть, некоторые команды DOS – Slai
@Slai' Dir' не существует в VBScript. – Tomalak