如何从文件路径获取父文件夹的名称?

时间:2016-08-22 20:44:04

标签: vba path directory

使用VBA,是否可以获取包含文件的文件夹的名称?

输入:C:\Windows\System32\notepad.exe

输出:System32

2 个答案:

答案 0 :(得分:1)

这将返回父文件夹名称:

Public Function GetParentFolderName(ByVal path As String) As String
    Dim result As String
    With fso = CreateObject("Scripting.FileSystemObject")
        result = .GetParentFolderName(path)
        GetParentFolderName = Mid(result, InStrRev(result, "\") + 1)
    End With
End Function

用法:

Sub GetParentFolderNameTest()
    Debug.Print GetParentFolderName("C:\Windows\System32\notepad.exe")
End Sub

输出:

System32

答案 1 :(得分:1)

你可以做得更简单(不需要参考):

Function ParentFolder(ByVal path As String)
        vArray = Split(path, "\")
        size = UBound(vArray)
        ParentFolder= vArray(size - 1)
End Function

然后致电

ParentFolder( "what\ever\path\to\a\file.ext" )

如果您需要文件夹的父文件夹,请用

替换最后一行
ParentFolder = vArray(size)

例如,当前应用程序的父文件夹(excel工作簿)

ParentFolder( ActiveWorkbook.path )