VB6: простой способ получить имя папки из filepath - PullRequest
2 голосов
/ 21 марта 2011

Если у меня есть полный путь к файлу:

eg. c:\files\file.txt

Какой самый простой способ получить папку с этим файлом: eg. c:\files\?

Ответы [ 3 ]

7 голосов
/ 21 марта 2011

Использование FileSystemObject.GetParentFolderName(strFullFilePath) например

  Dim strFullFilePath As String
  strFullFilePath = "c:\files\file.txt"

  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")

  MsgBox fso.GetParentFolderName(strFullFilePath)

Обратите внимание, что возвращается c:\file, а не c:\file\

6 голосов
/ 21 марта 2011

Вы можете использовать InStrRev для поиска \ и Left$ для извлечения бита пути:

filename = "c:\files\file.txt"
posn = InStrRev(filename, "\")
If posn > 0 Then
    pathstr = Left$(filename, posn)
Else
    pathstr = ""
End If

Я бы сделал из этого функцию для простоты использования:

Function pathOfFile(fileName As String) As String
    Dim posn As Integer
    posn = InStrRev(fileName, "\")
    If posn > 0 Then
        pathOfFile = Left$(filename, posn)
    Else
        pathOfFile = ""
    End If
End Function
1 голос
/ 27 января 2016
' GetFilenameWithoutExtension:  Return filename without extension from complete path
Public Function GetFilenameWithoutExtension(path As String) As String
    Dim pos As Integer
    Dim filename As String
    pos = InStrRev(path, "\")
    If pos > 0 Then
        filename = Mid$(path, pos + 1, Len(path))
        GetFilenameWithoutExtension = Left(filename, Len(filename) - Len(Mid$(filename, InStrRev(filename, "."), Len(filename))))
    Else
        GetFilenameWithoutExtension = ""
    End If
End Function

' GetFilenameWithExtension: Return filename with extension from complete path
Public Function GetFilenameWithExtension(path As String) As String
    Dim pos As Integer
    pos = InStrRev(path, "\")
    If pos > 0 Then
        GetFilenameWithExtension = Mid$(path, pos + 1, Len(path))
    Else
        GetFilenameWithExtension = ""
    End If
End Function


' GetDirectoryFromPathFilename: Return directory path contain filename
Public Function GetDirectoryFromPathFilename(path As String) As String
    Dim pos As Integer
    pos = InStrRev(path, "\")
    If pos > 0 Then
        GetDirectoryFromPathFilename = Left$(path, pos)
    Else
        GetDirectoryFromPathFilename = ""
    End If
End Function
...