2015-02-23 2 views
2

Я работаю над проектом, который мне нужен, чтобы получить путь от пользователя и делать что-то на этом пути, но мне нужно знать, что это за путь. Я не могу этого сделать, проверив расширение. Потому что, возможно, файл не имеет расширений. Есть ли какие-либо функции, такие как is_dir() & is_file() функции в php?Как определить путь - это файл или каталог в vb6?

+0

io.file.exists() и io.directory.exists() –

+0

Нужна ли ссылка для добавления? –

+2

VB6 или VB.NET? Он * делает * вопрос – Plutonix

ответ

1

Проверьте, действительно ли исходная строка является допустимой строкой.

Function FileOrFolder(strg As String) 
    Dim fs, FExists, DirExists 
    Set fs = CreateObject("Scripting.FileSystemObject") 
    FExists = fs.FileExists(strg) 
    DirExists = fs.folderexists(strg) 
    If FExists = True Then 
    FileOrFolder = "It's a file"     '// file 
    ElseIf DirExists = True Then 
    FileOrFolder = "It's a folder"    '// folder 
    Else 
    FileOrFolder = "Neither a file nor a folder" '// user string invalid 
    End If 
End Function 
4

Вы считаете очевидным?

If GetAttr(Path) And vbDirectory Then 
    MsgBox "Directory" 
Else 
    MsgBox "Not directory" 
End If 
+0

Плюс один. Стоит упомянуть, что это вызовет ошибку, если Path не существует. – MarkJ

+0

'(GetAttr (Path) и vbDirectory) <> 0' является более явным – wqw

0

еще одна функция для использования: Dir$()

С умолчанию vbNormal атрибуты аргумента Dir$() возвращает пустую строку, если имя пути аргумент является каталогом

Private Sub Command1_Click() 
    Dim strPath As String 
    Dim strFile As String 
    strPath = "c:\temp" 
    strFile = "c:\temp\pic.bmp" 
    Print strPath & " : " & CStr(IsDir(strPath)) 
    Print strFile & " : " & CStr(IsDir(strFile)) 
End Sub 

Private Function IsDir(strPath As String) As Boolean 
    If Len(Dir$(strPath, vbNormal)) = 0 Then 
    IsDir = True 
    Else 
    IsDir = False 
    End If 
End Function 
Смежные вопросы