Supprimer les caractères illégaux dans le nom de fichier en C#

Muhammad Husnain 12 octobre 2023
  1. Obtenir le nom du fichier en C#
  2. la fonction GetFileName() en C#
  3. Supprimer les caractères invalides du nom de fichier en C#
Supprimer les caractères illégaux dans le nom de fichier en C#

Cet article est un bref didacticiel sur l’obtention de noms de fichiers à partir du chemin à l’aide de C#. Il décrit en outre la méthode pour supprimer les caractères illégaux des noms de fichiers.

Obtenir le nom du fichier en C#

Certaines méthodes fournies dans la bibliothèque C# sont utilisées pour extraire le nom de fichier d’un chemin complet. Le chemin d’accès complet peut contenir le nom du lecteur, la hiérarchie des noms de dossier et le nom de fichier réel avec l’extension.

Dans de nombreuses situations, nous pouvons avoir besoin du nom de fichier des chemins. Par conséquent, nous pouvons utiliser la méthode GetFileName() dans la classe Path de C# pour extraire le nom du fichier.

la fonction GetFileName() en C#

La syntaxe de la fonction getFileName() est :

public static string GetFileName(string completePath);

completePath est une chaîne contenant le chemin complet à partir duquel nous devons extraire le nom du fichier, la fonction renvoie le nom du fichier avec son extension dans une variable string.

Regardons l’exemple de travail de GetFileName().

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();
    }
  }
}

Production:

Filename = myfile1.txt

Supprimer les caractères invalides du nom de fichier en C#

La fonction mentionnée ci-dessus peut donner ArgumentException s’il y a des caractères illégaux trouvés dans le nom de fichier. Ces caractères illégaux sont définis dans la fonction GetInvalidPathChars() et GetInvalidFilenameChars().

Nous pouvons supprimer les caractères invalides ou illégaux du nom de fichier en utilisant l’expression régulière suivante et la fonction Replace.

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);
    }
  }
}

Production:

MyNe wFi l eNam eee.

Dans l’extrait de code ci-dessus, nous avons concaténé les caractères invalides des deux fonctions (c’est-à-dire GetInvalidPathChars() et GetInvalidFilenameChars()) et créé une expression régulière du résultat.

Après cela, nous avons recherché tous les caractères invalides de notre nom de fichier spécifié (qui contient plusieurs caractères invalides) et les avons remplacés par des blancs à l’aide de la fonction Replace.

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