我试图找到字符串中最后一次出现的“\”(它是一个文件路径)并拆分字符串以包含所有内容,包括“\”,因此只留下文件名。例如,我的路径为“C:\ Users \ exampleUser \ examplefile.txt”,我希望它只返回“C:\ Users \ exampleUser \”。我已经找到了在其他语言上做到这一点的方法,但不是VBA。
编辑:我不希望这种方式硬编码。我正在使用文件系统对象循环遍历所有子文件夹并对给定名称和路径的特定文件执行某些命令,所以我不知道循环的每次迭代都会有什么文件路径。
答案 0 :(得分:1)
此外,您可以尝试Left
和InStrRev
:
Function GetDirectoryName(ByVal strFile As String, ByVal strDelimiter As String) As String
GetDirectoryName = Left(strFile, InStrRev(strFile, "\", -1))
End Function
答案 1 :(得分:1)
如果您已使用FileSystemObject
,最简单的方法是使用内置的GetParentFolderName方法执行此操作:
Private Sub Example()
Dim fso As Scripting.FileSystemObject
Dim path As String
Set fso = New Scripting.FileSystemObject
path = fso.GetParentFolderName("C:\Users\exampleUser\examplefile.txt")
Debug.Print path
End Sub
答案 2 :(得分:0)
使用INSTRREV
和MID
或RIGHT
执行此操作。 InStrRev("c:\testpath\testfile.txt","\")
或Split(strInput, "\")(UBound(Split(strInput, "\")))