Function GetFileBaseName(FileName As String, Optional ByVal IncludePath As _
Boolean) As String Dim i As Long, startPos As Long, endPos As Long startPos = 1 For i = Len(FileName) To 1 Step -1 Select Case Mid$(FileName, i, 1) Case "." ' we've found the extension If IncludePath Then ' if we must return the path, we've done GetFileBaseName = Left$(FileName, i - 1) Exit Function End If ' else, just take note of where the extension begins If endPos = 0 Then endPos = i - 1 Case ":", "\" If Not IncludePath Then startPos = i + 1 Exit For End Select Next If endPos = 0 Then ' this file has no extension GetFileBaseName = Mid$(FileName, startPos) Else GetFileBaseName = Mid$(FileName, startPos, endPos - startPos + 1) End If End Function |