VB6 从路径获取文件名

VB6 get filename from path

在我的 VB6 代码中有语句

Open CommonDialog.FileName For Input As #intFileNum

问题是 CommonDialog.FileName return 是一个完整的路径,而 VB6 打开命令只需要一个文件名。例如,如果路径为 C:\temp\file_name.csv,则 CommonDialog.FileName 将 return C:\temp\file_name.csv 但 VB6 中的此 Open 语句仅适用于 file_name.csv

我可以放

Dim Path As String
Path = CommonDialog.FileName
Open Path For Input As #intFileNem

我只需要知道如何删除路径中最后一个反斜杠“\”之前的所有内容。 VB6 库中有什么东西可以做到这一点吗?

路径取自普通对话框,代码

CommonDialog.DialogTitle = "Browse. . ."
    CommonDialog.Filter = "CSV File (*.csv)|*.csv"
    CommonDialog.ShowOpen

所以我想如果有人知道,我可能应该问一下,使用 ShowOpen 获取 public 子中的路径,然后在稍后的函数中使用带有 Open 命令的路径中的文件名不是任何类型这本身就是一个问题,对吗?

为了便于阅读,我必须在此处显示 Ghost。我使用 intFileNum 作为 long

Dim intFileNum As Long

Open Path1 For Input As #intFileNum

Do Until EOF(intFileNum)

Line Input #intFileNum, LineEnd

希望这些信息可以使情况更有意义

没有内置任何东西,但解析字符串很简单。

这是一个方便的函数。

Function ExtractFile(ByVal PathName As String) As String
    Dim f As String
    Dim n As Integer
' Return the filename portion of a full pathname

    f$ = PathName

    Do
        n% = InStr(f$, "\")
        If n% > 0 Then f$ = Right$(f$, Len(f$) - n%)
    Loop While n% > 0

    Do
        n% = InStr(f$, "/")
        If n% > 0 Then f$ = Right$(f$, Len(f$) - n%)
    Loop While n% > 0

    ExtractFile = f$

End Function
Function GetFileNameFromPath(strFullPath As String) As String
    GetFileNameFromPath = Right(strFullPath, Len(strFullPath) - InStrRev(strFullPath, "\"))
End Function

但是,您的问题是由于您未使用 FreeFile 或未关闭文件而导致的。

Public Function SomeMethod()
    On Error GoTo errSomeMethod

    Dim lngFileHandle As Long

    lngFileHandle = FreeFile
    Open CommonDialog.FileName For Input As #lngFileHandle

    'Whatever you want here

    Close #lngFileHandle

    Exit Function
errSomeMethod:
    Close #lngFileHandle
End Function

回答实际的原始问题:

说明书上写的是对的,见FileTitle Property

换句话说,这项工作已经为您完成...假设您确实需要它。但那是另一个问题了。