2014-01-10 6 views
1

Я хочу проверить путь, заданный пользователем, это каталог или файл в vbscript. Есть ли регулярное выражение или другие способы, которыми я могу это сделать? Любая помощь будет большой.Как проверить указанный путь - это каталог или файл в vbscript?

+0

Может не каталог содержит "" и не мог ли файл не иметь расширения? – tenub

+0

Каталог может иметь "." от его имени. –

+0

Тогда RegEx самостоятельно не может решить вашу проблему. Какая у вас конечная цель? Нам нужна дополнительная информация. – tenub

ответ

2

Добавьте эту функцию в свой код и используйте его, не стесняйтесь изменять sAns на какую-то публичную Const.

Function IsFileOrFolder(sInputText) 
    Dim sAns, oFSO 
    sAns = "No such a File or Folder!" 
    Set oFSO = CreateObject("Scripting.FileSystemObject") 
    If oFSO.FileExists(sInputText) Then sAns = "FILE: " & sInputText 
    If oFSO.FolderExists(sInputText) Then sAns = "FOLDER: " & sInputText 
    Set oFSO = Nothing 
    IsFileOrFolder = sAns 
End Function 
2
Function GetFSElementType(ByVal path) 
    With CreateObject("Scripting.FileSystemObject") 
     path = .GetAbsolutePathName(path) 
     Select Case True 
      Case .FileExists(path) : GetFSElementType = 1 
      Case .FolderExists(path) : GetFSElementType = 2 
      Case Else    : GetFSElementType = 0 
     End Select 
    End With 
End Function 

Function IsFile(path) 
    IsFile = (GetFSElementType(path) = 1) 
End Function 

Function IsFolder(path) 
    IsFolder = (GetFSElementType(path) = 2) 
End Function 

Function FSExists(path) 
    FSExists = (GetFSElementType(path) <> 0) 
End Function 

WScript.Echo CStr(IsFile("c:\")) 
WScript.Echo CStr(IsFolder("c:\")) 
WScript.Echo CStr(FSExists("c:\")) 
Смежные вопросы