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;
}
Kommentare zum Snippet