Private Function sfilename(ByVal fullpath As String) As String '得到带扩展名的文件名
Dim temparr As Variant, getfilename As String
temparr = Split(fullpath, "\")
Dim i As Long
i = UBound(temparr)
Dim j As Long
If i = 0 Then
j = InStr(1, temparr(0), ":")
If j = 0 Then
getfilename = temparr(0)
ElseIf j = 2 Then
getfilename = Mid(temparr(0), 3, Len(temparr(0)) - 2)
End If
Else
getfilename = temparr(i)
End If
Dim errstr As String, s As String
errstr = "\/:*? <> |"""
For i = 1 To Len(errstr)
s = Mid(errstr, i, 1)
If InStr(1, getfilename, s) > 0 Then
MsgBox "所输入的文件名错误"
sfilename = ""
Exit Function
End If
Next
sfilename = getfilename
End Function
Private Function sRightname(ByVal fullpath As String) As String '得到扩展名
Dim temp As String
temp = sfilename(fullpath)
If temp = "" Then
sRightname = ""
Exit Function
End If
Dim arr As Variant
arr = Split(temp, ".")
If UBound(arr) = 0 Then
sRightname = ""
Exit Function
End If
sRightname = arr(UBound(arr))
End Function
Private Function sLeftname(ByVal fullpath As String) As String '得到不带扩展名的文件名
Dim temp As String
temp = sfilename(fullpath)
If temp = "" Then
sLeftname = ""
Exit Function
End If
Dim arr As Variant
arr = Split(temp, ".")
If UBound(arr) = 0 Then
sLeftname = arr(0)
Exit Function
Else
Dim i As Long
i = Len(arr(UBound(arr)))
sLeftname = Left(temp, Len(temp) - i - 1)
End If
End Function
Private Function filehave(ByVal fullpath As String) As Boolean '判断文件是否存在
If Dir(fullpath) = "" Then ' 文件不存在
filehave = False
Else
filehave = True
End If
End Function
Private Sub Command1_Click()
MsgBox sfilename("c:test.txt")
MsgBox sfilename("c:\ss\test.txt")
MsgBox sLeftname("c:\ss\aa\test.txt")
MsgBox sLeftname("c:test.txt")
MsgBox sRightname("c:\ss\aa\test.txt")
MsgBox sRightname("c:test.txt")
MsgBox filehave("c:\ss\aa\test.txt")
End Sub