Prüfen ob ein String als Dateiname taugt ?

GartenUmgraben

Erfahrenes Mitglied
Moin

Gibt es eine einfache Variante zu prüfen ob ein String als Dateiname geeignet ist bzw. einen eine Methode die einen beliebigen String von allen (für Dateinamen ungeigneten) Sonderzeichen befreit?

Als kleinen Zusatz...gibt es sowas auch in Abhängigkeit vom jeweiligen Betriebssystem und oder der gewählten OS Landessprache ?


Gruß

Gärtner
 
Hi!

Das wirst IMO nur mit Regex hinbekommen.
Hab mal schnell ein Beispiel gemacht, das erstmal geht:
C#:
public static Regex regex = new Regex(
    @"(?<Filename>(?<Drive>[:c]*:)\\((?<Folder>[^\#\?\=\t]*)\\)*(?<File>[^\#\?\=\t]*(?:\.)(?<Extention>[\w]{0,8}))+)",
    RegexOptions.IgnoreCase
    | RegexOptions.ExplicitCapture
    | RegexOptions.Compiled );
Mehr Zeichen fallen mir im Moment nicht ein.

Wenn die Groups vorhanden sind, ist der Dateiname korrekt.
Anhand der Groups kannst den User auch sagen was noch falsch ist. ;-)

Hoffe ich konnte helfen.

MfG,
cosmo
 
Nachtrag: Der Pattern war etwas daneben. Er sollte lediglich bestimmte Zeichen vermeiden.
Hatte ihn in ähnlicher Form für FTP uploads verwendet...
Hier hast einen der genau das machen sollte, was Du gern haben willst. :)
HTML:
(?<Filename>((?<Drive>[:c]:)\\)*((?<Folder>[^\/\\\:\*\?\"\<\>\|\t]*)\\)*(?<File>[^\/\\\:\*\?\"\<\>\|\t]+(?:\.)(?<Extention>[\w]{0,8}))+)
Ich prüfe hier auf folgende Zeichen die nicht vorhanden sein sollen
HTML:
[^\/\\\:\*\?\"\<\>\|\t]
Sag Bescheid, wenn Du noch Hilfe brauchst.
 

Neue Beiträge

Zurück