Heim >Backend-Entwicklung >C++ >Wie entferne ich illegale Zeichen effektiv aus Dateipfaden und Dateinamen?
Unzulässige Zeichen in Pfaden und Dateinamen löschen
Die Aufgabe dieses Programmierbeispiels besteht darin, ungültige Pfad- und Dateizeichen aus einem String zu entfernen, ohne Fehler zu erzeugen. Obwohl der angegebene Code dieses Problem lösen soll, scheint er nicht zu funktionieren. Lassen Sie uns die fehlenden Teile analysieren:
Der-Code versucht, mithilfe der Trim
-Methode unzulässige Zeichen aus einer Zeichenfolge zu entfernen. Allerdings kann Trim
nur Leerzeichen wie Leerzeichen und Tabulatoren am Anfang und Ende einer Zeichenfolge entfernen. Es hat keine Auswirkung auf Zeichen, die keine Leerzeichen sind.
Um illegale Zeichen effektiv zu entfernen, müssen Sie die spezifischen Methoden verwenden, die vom System.IO
-Namespace bereitgestellt werden. Hier ist der geänderte Code, der diese Aufgabe effizient erledigt:
<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.?"; // 删除无效的文件字符 illegal = illegal.Replace(Path.GetInvalidFileNameChars(), ""); // 删除无效的路径字符 illegal = illegal.Replace(Path.GetInvalidPathChars(), ""); Console.WriteLine(illegal); Console.ReadLine(); } } }</code>
In diesem geänderten Code haben wir die Methode Replace
durch die Methode Trim
ersetzt, mit der wir angeben können, welche Zeichen aus der Zeichenfolge entfernt werden sollen. Durch den Aufruf von Path.GetInvalidFileNameChars()
und Path.GetInvalidPathChars()
erhalten wir Arrays ungültiger Datei- bzw. Pfadzeichen. Anschließend übergeben wir diese Arrays als zu ersetzende Zeichen und entfernen sie so effektiv aus der ursprünglichen Zeichenfolge.
Hier ist eine weitere Lösung, die Ceres in einem anderen Diskussionsthread bereitgestellt hat:
<code class="language-csharp">public string RemoveInvalidChars(string filename) { return string.Concat(filename.Split(Path.GetInvalidFileNameChars())); }</code>
Dieser Code verwendet die Methode Split
, um eine Zeichenfolge an der Stelle ungültiger Zeichen zu teilen und dann die resultierenden Teilzeichenfolgen wieder zusammenzusetzen, um eine neue Zeichenfolge zu erstellen, die keine ungültigen Zeichen enthält.
Möglicherweise möchten Sie ungültige Zeichen lieber durch bestimmte Zeichen ersetzen, z. B. einen Unterstrich:
<code class="language-csharp">public string ReplaceInvalidChars(string filename) { return string.Join("_", filename.Split(Path.GetInvalidFileNameChars())); }</code>
Dieser Code ersetzt alle ungültigen Zeichen durch Unterstriche und eignet sich daher für Szenarien, in denen Sie die ursprüngliche Struktur eines Pfads oder Dateinamens beibehalten möchten.
Diese Lösungen bieten leistungsstarke und effektive Möglichkeiten zur Beseitigung illegaler Zeichen in Datei- und Pfadzeichenfolgen, um die Kompatibilität sicherzustellen und potenzielle Dateisystemfehler zu verhindern.
Das obige ist der detaillierte Inhalt vonWie entferne ich illegale Zeichen effektiv aus Dateipfaden und Dateinamen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!