Office中国论坛/Access中国论坛

标题: [原创][分享]获取路径信息函数 [打印本页]

作者: wang1999    时间: 2015-11-22 09:07
标题: [原创][分享]获取路径信息函数
最近在学习VS2010的自动化与扩展.顺手写了几个路径信息的函数
'获取文件名
Function GetFileName(Path As String) As String
    Dim lPos As Long
    lPos = InStrRev(Path, "\")
    If lPos Then GetFileName = Mid$(Path, lPos + 1)
End Function
'获取目录名
Function GetDirName(Path As String) As String
    Dim lPos As Long
    lPos = InStrRev(Path, "\")
    If lPos Then GetDirName = Mid$(Path, 1, lPos)
End Function
'获取扩展名
Function GetExtension(Path As String) As String
    Dim lPos1 As Long, lPos2 As Long
    lPos1 = InStrRev(Path, "\")
    lPos2 = InStrRev(Path, ".")
    '防止没有扩展名的文件
    If lPos1 < lPos2 And lPos1 > 0 Then GetExtension = Mid$(Path, lPos2 + 1)
End Function
'获取根目录
Function GetPathRoot(Path As String) As String
    Dim lPos As Long
    If Left$(Path, 2) = "\\" Then       '处理网络路径
        lPos = InStr(3, Path, "\")
        If lPos Then GetPathRoot = Mid$(Path, 1, lPos)
    Else
        lPos = InStr(1, Path, "\")
        If lPos Then GetPathRoot = Left$(Path, lPos)
    End If
End Function
'获取文件名, 不带扩展名
Function GetFileNameNoExt(Path As String) As String
    Dim lPos1 As Long, lPos2 As Long, strRet As String
    lPos1 = InStrRev(Path, "\")
    If lPos1 < 1 Then Exit Function
    lPos2 = InStrRev(Path, ".")
    If lPos1 < lPos2 Then   '文件名存在扩展名
        GetFileNameNoExt = Mid$(Path, lPos1 + 1, lPos2 - lPos1 - 1)
    Else        '文件名没有扩展名
        GetFileNameNoExt = Mid$(Path, lPos1 + 1)
    End If
End Function

Sub Path_Test()
    Dim strPath As String
    strPath = "C:\dir1\dir2\foo.txt"       '正常目录
'    strPath = "C:\dt01\dir.2\footxt"       '没有扩展名
'    strPath = "\\dt01\dir.2\footxt"       '网络路径1
'    strPath = "\\192.168.1.101\dir.2\foo.txt"       '网络路径2
    Debug.Print GetFileName(strPath)
    Debug.Print GetDirName(strPath)
    Debug.Print GetExtension(strPath)
    Debug.Print GetPathRoot(strPath)
    Debug.Print GetFileNameNoExt(strPath)
End Sub


有了上面的基本够用了.
下面是整合的函数



作者: tmtony    时间: 2015-11-22 09:19
wang1999 发表于 2015-11-22 09:07
最近在学习VS2010的自动化与扩展.顺手写了几个路径信息的函数
'获取文件名
Function GetFileName(Path As ...

赞一个
作者: shenzhenzch    时间: 2015-11-22 13:26
谢谢分享!
作者: 764300778    时间: 2015-11-23 00:27
eeee
作者: hwhwenha01    时间: 2015-11-23 07:00
好东西
作者: hwhwenha01    时间: 2015-11-23 07:01
要是天有真好!
作者: coolleaf20    时间: 2015-11-23 08:55
挺好的。
作者: 风中漫步    时间: 2015-11-23 09:27
谢谢分享
作者: zhuyiwen    时间: 2015-11-23 12:00
赞一个{:soso_e179:}
作者: WFH6898    时间: 2015-11-23 13:17
赞一个
作者: roych    时间: 2015-11-23 16:19
谢谢分享。
只是,如果用户自定义路径的话,估计还是需要使用fso或者fd,嗯,api也行。。。
作者: c101    时间: 2015-11-25 05:40
谢谢分享!
作者: c101    时间: 2015-11-25 05:40
谢谢分享!
作者: xiner1229    时间: 2015-11-25 09:24
很有用的函数,谢谢分享!
作者: xuwenning    时间: 2015-11-25 09:32
学习一下
作者: friendship    时间: 2015-11-27 04:24

作者: wowo256    时间: 2015-11-28 22:40
很好的东西,赞一个。
作者: rbridomzmr    时间: 2016-9-7 16:23
学习一下
作者: 好运牛    时间: 2016-12-11 18:10
谢谢分享
作者: su_xx    时间: 2016-12-14 09:20
谢谢分享!
作者: sunwrsun    时间: 2017-7-31 22:56
看看
作者: yuanxing2016    时间: 2017-9-25 14:48
谢谢分享!
作者: 六月雪    时间: 2018-1-27 00:10
哦哦哦哦哦哦哦
作者: guowj_sqi    时间: 2019-4-4 11:16
谢谢分享!
作者: 390012370    时间: 2024-3-4 16:07
要是天有真好!来自: Android客户端




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3