Entfernen unzulässiger Zeichen in Dateinamen in C#

Muhammad Husnain 12 Oktober 2023
  1. Abrufen von Dateinamen in C#
  2. die Funktion GetFileName() in C#
  3. Entfernen ungültiger Zeichen aus Dateinamen in C#
Entfernen unzulässiger Zeichen in Dateinamen in C#

Dieser Artikel ist ein kurzes Tutorial zum Abrufen von Dateinamen aus dem Pfad mit C#. Es erörtert ferner das Verfahren zum Entfernen unzulässiger Zeichen aus den Dateinamen.

Abrufen von Dateinamen in C#

Einige in der C#-Bibliothek bereitgestellte Methoden werden zum Extrahieren des Dateinamens aus einem vollständigen Pfad verwendet. Der vollständige Pfad kann den Laufwerksnamen, die Hierarchie der Ordnernamen und den tatsächlichen Dateinamen mit Erweiterung enthalten.

In vielen Situationen benötigen wir möglicherweise den Dateinamen aus den Pfaden. Daher können wir die Methode GetFileName() in der Klasse Path von C# verwenden, um den Dateinamen zu extrahieren.

die Funktion GetFileName() in C#

Die Syntax der Funktion getFileName() lautet:

public static string GetFileName(string completePath);

Wo completePath ein String ist, der den vollständigen Pfad enthält, aus dem wir den Dateinamen extrahieren müssen, gibt die Funktion den Dateinamen mit seiner Erweiterung in einer string-Variablen zurück.

Schauen wir uns das funktionierende Beispiel von GetFileName() an.

using System;
using System.IO;
using System.Text;

namespace mynamespace {

  class FileNameExample {
    static void Main(string[] args) {
      string stringPath = "C:// files//textFiles//myfile1.txt";

      string filename = Path.GetFileName(stringPath);
      Console.WriteLine("Filename = " + filename);
      Console.ReadLine();
    }
  }
}

Ausgabe:

Filename = myfile1.txt

Entfernen ungültiger Zeichen aus Dateinamen in C#

Die oben erwähnte Funktion kann ArgumentException zurückgeben, wenn im Dateinamen einige unzulässige Zeichen gefunden werden. Diese unzulässigen Zeichen sind in den Funktionen GetInvalidPathChars() und GetInvalidFilenameChars() definiert.

Mit dem folgenden regulären Ausdruck und der Funktion Ersetzen können wir ungültige oder unzulässige Zeichen aus dem Dateinamen entfernen.

using System;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;

namespace mynamespace {

  class FileNameExample {
    static void Main(string[] args) {
      string invalidFilename = "\"M\"\\y/Ne/ w**Fi:>> l\\/:*?\"| eN*a|m|| e\"ee.?";
      string regSearch =
          new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
      Regex rg = new Regex(string.Format("[{0}]", Regex.Escape(regSearch)));
      invalidFilename = rg.Replace(invalidFilename, "");
      Console.WriteLine(invalidFilename);
    }
  }
}

Ausgabe:

MyNe wFi l eNam eee.

Im obigen Code-Snippet haben wir die ungültigen Zeichen aus beiden Funktionen (d. h. GetInvalidPathChars() und GetInvalidFilenameChars()) verkettet und einen regulären Ausdruck des Ergebnisses erstellt.

Danach haben wir nach allen ungültigen Zeichen aus unserem angegebenen Dateinamen (der mehrere ungültige Zeichen enthält) gesucht und sie mit der Funktion Replace durch Leerzeichen ersetzt.

Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn