Maison > développement back-end > C++ > Comment supprimer ou remplacer efficacement les caractères illégaux dans les chemins et les noms de fichiers ?

Comment supprimer ou remplacer efficacement les caractères illégaux dans les chemins et les noms de fichiers ?

DDD
Libérer: 2025-01-21 09:01:09
original
539 Les gens l'ont consulté

How to Effectively Remove or Replace Illegal Characters in File Paths and Filenames?

Nettoyer les caractères illégaux dans les chemins et les noms de fichiers

En programmation, travailler avec des chemins de fichiers et des noms de fichiers nécessite souvent de s'assurer qu'ils sont conformes à un jeu de caractères valide pour éviter les erreurs ou les problèmes de compatibilité. Cela inclut la suppression des caractères illégaux. Explorons une solution efficace.

L'extrait de code fourni dans la question d'origine tente de supprimer les chemins et caractères de fichier illégaux à l'aide de la méthode Trim(). Cependant, il ne parvient pas à le faire car Trim() ne fonctionne que sur les espaces de début et de fin. Pour supprimer les caractères requis, nous devons utiliser les méthodes GetInvalidFileNameChars() et GetInvalidPathChars().

Voici une solution à ce problème :

<code class="language-c#">public string RemoveInvalidChars(string path)
{
    // 移除非法的文件字符
    path = string.Join("", path.Split(Path.GetInvalidFileNameChars(), StringSplitOptions.RemoveEmptyEntries));

    // 移除非法的路径字符
    path = string.Join("", path.Split(Path.GetInvalidPathChars(), StringSplitOptions.RemoveEmptyEntries));

    return path;
}</code>
Copier après la connexion

Cette méthode prend un chemin en entrée et supprime les caractères illégaux en divisant la chaîne en ces points. Il supprime efficacement les caractères invalides, ce qui donne un chemin nettoyé.

Vous pouvez également choisir de remplacer les caractères illégaux au lieu de les supprimer. Voici une façon de procéder :

<code class="language-c#">public string ReplaceInvalidChars(string path)
{
    path = string.Join("_", path.Split(Path.GetInvalidFileNameChars(), StringSplitOptions.RemoveEmptyEntries));
    path = string.Join("_", path.Split(Path.GetInvalidPathChars(), StringSplitOptions.RemoveEmptyEntries));

    return path;
}</code>
Copier après la connexion

Dans cette méthode, nous divisons la chaîne où apparaissent les caractères illégaux et les remplaçons par des traits de soulignement. Cela garantit que la chaîne ne contient plus de caractères illégaux tout en restant lisible.

Les deux méthodes fournissent des moyens fiables et efficaces de gérer les caractères illégaux dans les chemins et les noms de fichiers, garantissant qu'ils sont valides et compatibles avec les systèmes d'exploitation et les applications.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal