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]

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

Angular mit ASP.NET Core für .NET-Entwickler

.NET ist Ihnen vertraut, als Entwickler verfügen Sie über einschlägige Kenntnisse. In diesem Kurs lernen Sie nun, Angular in .NET-Umgebungen einzusetzen. Sie verstehen das Konzept von Angular und integrieren das clientseitige JS-Framework sicher in.NET-Anwendungen.

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