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.
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Aufbau

Nach dieser Schulung können Sie mittels objektorientierter Modelle in VB.NET 2017/2015/2013 wiederverwendbare Elemente eigenständig erstellen.

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

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