Feedback

C# - Pfad kürzen

Veröffentlicht von am 31.05.2008
(2 Bewertungen)
Diese Funktion kürzt einen Pfad ab so das aus
"C:\Windows\System32\Test\Test.dll" dann "C:\Windows\...\Test.dll" wird.

Dies ist die in C# übersetzte Version dieses Snippets: http://dotnet-snippets.de/dns/pfad-kuerzen-SID276.aspx
/// <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 string PathShorten(string Path, int Length, Font TextFont)
{
    string[] PathParts = Path.Split('\\');
    StringBuilder PathBuild = new StringBuilder(Path.Length);
    string LastPart = PathParts[PathParts.Length - 1];
    string PrevPath = "";

    //Erst prüfen ob der komplette String evtl. bereits kürzer als die Maximallänge ist
    if (TextRenderer.MeasureText(Path, TextFont).Width < Length)
    {
        return Path;
    }

    for (int i = 0; i < PathParts.Length - 1; i++)
    {
        PathBuild.Append(PathParts[i] + @"\");
        if (TextRenderer.MeasureText(PathBuild.ToString() + @"...\" + LastPart, TextFont).Width >= Length)
        {
            return PrevPath;
        }
        else
        {
            PrevPath = PathBuild.ToString() + @"...\" + LastPart;
        }
    }
    return PrevPath;
}
Abgelegt unter Pfad, String, kürzen.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!