-
Get File Parts
This little bit of code I made will return different parts of a file like Drive, Path, Filename, extension Hope you find it usfull.
Code:
Enum FileParts
vDrive = 1
vPath = 2
vFilename = 3
vExtension = 4
End Enum
Private Function ReturnFileParts(oFilePart As FileParts, Filename As String) As String
Dim sPos As Integer
Dim ePos As Integer
Select Case oFilePart
Case vDrive
sPos = InStr(1, Filename, ":", vbBinaryCompare)
If (sPos > 0) Then
'Extract drive
ReturnFileParts = Left$(Filename, sPos - 1)
End If
Case vPath
'Get first slash
sPos = InStr(1, Filename, "\", vbBinaryCompare)
'Get end slash
If (sPos > 0) Then
ePos = InStrRev(Filename, "\", Len(Filename), vbBinaryCompare)
End If
If (ePos > 0) Then
'Return Path
ReturnFileParts = Mid$(Filename, sPos + 1, ePos - sPos - 1)
End If
Case vFilename
'Get end slash
sPos = InStrRev(Filename, "\", Len(Filename), vbBinaryCompare)
If (sPos > 0) Then
'Return filename
ReturnFileParts = Mid$(Filename, sPos + 1)
End If
Case vExtension
'Find .
sPos = InStr(1, Filename, ".", vbBinaryCompare)
If (sPos > 0) Then
'Return extension
ReturnFileParts = Mid$(Filename, sPos + 1)
End If
End Select
End Function
Private Sub Command1_Click()
Dim File As String
'Example
File = "C:\SomeFolder\Level1\Test.txt"
MsgBox ReturnFileParts(vDrive, File) 'Return C
MsgBox ReturnFileParts(vPath, File) 'Return SomeFolder\Level1
MsgBox ReturnFileParts(vFilename, File) 'Return Test.txt
MsgBox ReturnFileParts(vExtension, File) 'Return txt
End Sub