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
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) - Komplett 

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

''' <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!