Feedback

C# - alle ungültigen Zeichen aus Dateinamen entfernen

Veröffentlicht von am 16.12.2006
(1 Bewertungen)
Diese Funktion entfernt alle Zeichen aus dem übergebenen String die in Dateinamen nicht erlaubt sind.
/// <summary>
/// Diese Funktion entfernt alle Zeichen aus dem übergebenen String
/// die in Dateinamen nicht erlaubt sind.
/// </summary>
/// <param name="Input">Der zu prüfende String</param>
/// <returns>String ohne nichterlaubte Zeichen</returns>
private string AdjustPath(string Input)
{
    return System.Text.RegularExpressions.Regex.Replace(Input,@"[\\/:*?""<>|]", string.Empty);
}
Abgelegt unter regex, Dateiname, ungültige Zeichen.

2 Kommentare zum Snippet

Linoge schrieb am 18.12.2006:
Hallo Zusammen,
hier eine etwas andere Variante ohne Reguläre-Ausdrücke:

private string Test(string foo)
{
char[] Zeichen = new char[] { '\\', '/', ':', '*', '?', '\"', '<', '>', '|' };
for (Int64 i = 0; i < Zeichen.Length; i++)
foo = foo.Replace(Zeichen[i].ToString(), string.Empty);
return foo;
}


jedoch ist die Variante von Jan sauber und auch schneller,
z,B bei 1000000 Zeichen braucht diese Funktion ca 15 Millisekunden und
Jans Version unter 1 Millisekunden bei einem 3GHz Rechner.

Dieses Beispiel soll die Unterschiede zwischen verschiedenen Quelltexten mit
dem gleichen Ergebnis zeigen.

mfg
Linoge
Xqgene schrieb am 21.06.2007:
ab .NET 2.0 kann und soll man die Path.GetInvalidPathChars() und Path.GetInvalidFileNameChars() Methoden nutzen, um ein Array mit ungültigen Zeichen, zu bestimmen. Dadurch ist man nicht mehr so von einem bestimmten BS abhängig.
 

Logge dich ein, um hier zu kommentieren!