Feedback

VB - Pfad kürzen

Veröffentlicht von am 26.10.2006
(6 Bewertungen)
Diese Funktion kürzt einen Pfad ab so das aus
"C:\Windows\System32\Test\Test.dll" dann "C:\Windows\...\Test.dll" wird
''' <summary>
''' Diese Funktion kürzt einen Pfad ab so das aus
''' "C:\Windows\System32\Test\Test.dll" dann "C:\Windows\...\Test.dll" wird
''' </summary>
''' <param name="Path">Der Pfad der gekürzt zurückgegeben werden soll</param>
''' <param name="Length">Die gewünschte Länge die nicht überschritten werden darf</param>
''' <param name="TextFont">Die Schriftart die angewendet wird</param>
Public Function PathShorten(ByVal Path As String, ByVal Length As Integer, ByVal TextFont As Font) As String
    Dim PathParts() As String = Split(Path, "\")
    Dim PathBuild As New System.Text.StringBuilder(Path.Length)
    Dim LastPart As String = PathParts(PathParts.Length - 1)
    Dim PrevPath As String = ""

    'Erst prüfen ob der komplette String evtl. bereits kürzer als die Maximallänge ist
    If TextRenderer.MeasureText(Path, TextFont).Width < Length Then
        Return Path
    End If

    For i As Integer = 0 To PathParts.Length - 1
        PathBuild.Append(PathParts(i) & "\")
        If TextRenderer.MeasureText(PathBuild.ToString & "...\" & LastPart, TextFont).Width >= Length Then
            Return PrevPath
        Else
            PrevPath = PathBuild.ToString & "...\" & LastPart
        End If
    Next
    Return PrevPath
End Function
Abgelegt unter Pfad, String, Kürzen.

2 Kommentare zum Snippet

Gilu schrieb am 10.02.2010:
Vielen Dank für das tolle Snippet.
Doch die Zeile 9 sollte so heissen:
Dim PathParts() As String = Path.Split("\")

Nur so von wegen .net! ;)
Gilu schrieb am 10.02.2010:
So, natürlich, sorry!
Dim PathParts() As String = Path.Split("\"c)
 

Logge dich ein, um hier zu kommentieren!