1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
/// <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;
}
|