''' <summary>
''' <para>Class allows the formatting of filepaths for displaying in different formats. All methods return a String object.</para>
''' </summary>
Public Class PathManipulate
''' <summary>
''' <para>Returns the folder path that the supplied full filenpath resides in. Includes trailing '\'</para>
''' </summary>
Public Function ShowDirectory(ByVal LongPath As String)
Dim FilePath As String
'START AT BEGINNING OF FULL PATH AND END AT THE LAST OCCURRENCE OF '\'
FilePath = LongPath.Substring(0, LongPath.LastIndexOf("\") + 1)
Return FilePath
End Function
''' <summary>
''' <para>Returns only the filename (with extension) of the supplied filepath. Removes leading '\'.</para>
''' </summary>
Public Function ShowFilenameOnly(ByVal LongPath As String)
Dim FileName As String
FileName = LongPath.Substring(LongPath.LastIndexOf("\") + 1, LongPath.Length - LongPath.LastIndexOf("\") - 1)
Return FileName
End Function
''' <summary>
''' <para>Returns filepath shortened with ellipses in the middle.</para>
''' </summary>
Public Function ShrinkLongFilepath(ByVal LongPath As String) As String
Dim ReturnPath, StartPath, FileName As String
FileName = LongPath.Substring(LongPath.LastIndexOf("\") + 1, LongPath.Length - LongPath.LastIndexOf("\") - 1)
'ELLIPSES WILL BE IN THE MIDDLE
StartPath = LongPath.Substring(0, LongPath.Length - LongPath.LastIndexOf("\") - 3)
ReturnPath = StartPath & "...\" & FileName
Return ReturnPath
End Function
''' <summary>
''' <para>Returns filepath shortened to desired length, if supplied, with ellipses in middle unless overridden with parameter.</para>
''' </summary>
Public Function ShrinkLongFilepath(ByVal LongPath As String, ByVal EllipsesAtEnd As Boolean, Optional ByVal DesiredLength As Integer = 15, Optional ByVal AlwaysDisplayFilename As Boolean = False) As String
Dim ReturnPath, StartPath, EndPath, FileName As String
'DESIRED LENGTH MUST BE AT LEAST 15
If DesiredLength < 15 Then
DesiredLength = 15
End If
'STRIPS ONLY THE FILENAME
FileName = LongPath.Substring(LongPath.LastIndexOf("\"), LongPath.Length - LongPath.LastIndexOf("\"))
If AlwaysDisplayFilename Then
If FileName.Length + 3 < DesiredLength Then
'ELLIPSES WILL BE IN THE MIDDLE
StartPath = LongPath.Substring(0, (DesiredLength / 2) - 3)
EndPath = LongPath.Substring(StartPath.Length, DesiredLength - StartPath.Length)
ReturnPath = StartPath & "..." & FileName
Else
ReturnPath = "..." & FileName
End If
Else
If EllipsesAtEnd Then 'IF ELLIPSES AT END OF FILEPATH
ReturnPath = LongPath.Substring(0, DesiredLength - 3)
ReturnPath &= "..."
Else 'ELLIPSES WILL BE IN THE MIDDLE
If LongPath.Length < DesiredLength Then
StartPath = LongPath.Substring(0, LongPath.IndexOf("\") + 1)
EndPath = LongPath.Substring(StartPath.Length + 3, LongPath.Length - (StartPath.Length + 3))
ReturnPath = StartPath & "..." & EndPath
Else
StartPath = LongPath.Substring(0, LongPath.IndexOf("\") + 1)
EndPath = LongPath.Substring(StartPath.Length + 3, DesiredLength - (StartPath.Length + 3))
ReturnPath = StartPath & "..." & EndPath
End If
End If
End If
Return ReturnPath
End Function
End Class