Heim >Backend-Entwicklung >C++ >Wie entferne ich ungültige Zeichen effektiv aus Dateipfaden und Dateinamen in C#?

Wie entferne ich ungültige Zeichen effektiv aus Dateipfaden und Dateinamen in C#?

Linda Hamilton
Linda HamiltonOriginal
2025-01-21 08:51:101006Durchsuche

How to Effectively Remove Illegal Characters from File Paths and Filenames in C#?

Unzulässige Zeichen in Pfaden und Dateinamen löschen

Um die Integrität des Dateisystems zu schützen und die Kompatibilität zwischen Betriebssystemen sicherzustellen, gelten bestimmte Zeichen in Pfaden und Dateinamen als illegal. Das Entfernen dieser Zeichen ist für erfolgreiche Datei- und Speichervorgänge von entscheidender Bedeutung.

Eine gängige Methode zur Lösung dieses Problems ist die Verwendung der Methoden Path.GetInvalidFileNameChars() und Path.GetInvalidPathChars() im System.IO-Namespace. Der in der ursprünglichen Frage bereitgestellte Code führt jedoch nicht korrekt aus, was erforderlich ist. Das Problem besteht darin, dass die Trim()-Methode nur führende und nachfolgende Leerzeichen entfernt.

Um dies zu beheben, ist eine leistungsfähigere und umfassendere Methode erforderlich, um alle Vorkommen illegaler Zeichen in Zeichenfolgen zu bereinigen. Eine effektive Lösung besteht darin, die Split()-Methode zu verwenden, um die Zeichenfolge entsprechend dem unzulässigen Zeichensatz aufzuteilen. Das resultierende Array kann dann wieder zu einer Zeichenfolge ohne problematische Zeichen zusammengesetzt werden.

Das Folgende ist eine modifizierte Version des Codes, die illegale Zeichen effektiv aus einer angegebenen Zeichenfolge entfernt:

<code class="language-csharp">using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string illegal = "\"M\"" + "\a/ry/ h**ad:>> a\/:*?\"| li*tt|le|| la\"mb.?";

            // 删除非法文件字符
            string withoutFileInvalidChars = string.Concat(illegal.Split(Path.GetInvalidFileNameChars()));

            // 删除非法路径字符
            string withoutPathInvalidChars = string.Concat(withoutFileInvalidChars.Split(Path.GetInvalidPathChars()));

            Console.WriteLine(withoutPathInvalidChars);
            Console.ReadLine();
        }
    }
}</code>

Darüber hinaus können Sie illegale Zeichen durch geeignete Ersatzzeichen ersetzen, anstatt sie einfach zu löschen. Verwenden Sie dazu die Methode string.Join() mit einem Trennzeichen Ihrer Wahl, wie im folgenden Codeausschnitt gezeigt:

<code class="language-csharp">string replacedInvalidChars = string.Join("_", illegal.Split(Path.GetInvalidFileNameChars()));</code>

Diese Methode ersetzt alle unzulässigen Zeichen durch Unterstriche und sorgt so für eine lesbare und konsistente Zeichenfolge. Spezifische Ersatzzeichen können an Ihre spezifischen Anforderungen angepasst werden.

Das obige ist der detaillierte Inhalt vonWie entferne ich ungültige Zeichen effektiv aus Dateipfaden und Dateinamen in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn