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 Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

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