Rumah >pembangunan bahagian belakang >C++ >Bagaimana Mengeluarkan Aksara Haram dengan Berkesan daripada Laluan Fail dan Nama Fail dalam C#?
Kosongkan aksara haram dalam laluan dan nama fail
Untuk melindungi integriti sistem fail dan memastikan keserasian merentas sistem pengendalian, aksara tertentu dianggap menyalahi undang-undang dalam laluan dan nama fail. Mengalih keluar aksara ini adalah penting untuk operasi fail dan operasi penyimpanan yang berjaya.
Cara biasa untuk menyelesaikan masalah ini ialah menggunakan kaedah Path.GetInvalidFileNameChars() dan Path.GetInvalidPathChars() dalam ruang nama System.IO. Walau bagaimanapun, kod yang disediakan dalam soalan asal tidak melakukan apa yang diperlukan dengan betul. Masalahnya bergantung pada kaedah Trim(), yang hanya mengalih keluar aksara ruang hadapan dan belakang.
Untuk membetulkan ini, kaedah yang lebih berkuasa dan komprehensif diperlukan untuk membersihkan semua kejadian aksara haram dalam rentetan. Penyelesaian yang berkesan ialah menggunakan kaedah Split() untuk memisahkan rentetan mengikut set aksara yang tidak sah. Tatasusunan yang terhasil kemudiannya boleh dipasang semula bersama-sama untuk membentuk rentetan tanpa aksara bermasalah.
Berikut ialah versi kod yang diubah suai yang secara berkesan mengalih keluar aksara haram daripada rentetan yang ditentukan:
<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>
Selain itu, anda boleh memilih untuk menggantikan aksara yang menyalahi undang-undang dengan aksara gantian yang sesuai dan bukannya hanya memadamkannya. Untuk melakukan ini, gunakan kaedah string.Join() dengan pembatas pilihan anda, seperti yang ditunjukkan dalam coretan kod berikut:
<code class="language-csharp">string replacedInvalidChars = string.Join("_", illegal.Split(Path.GetInvalidFileNameChars()));</code>
Kaedah ini menggantikan semua aksara haram dengan garis bawah, memberikan rentetan yang boleh dibaca dan konsisten. Watak gantian khusus boleh disesuaikan untuk memenuhi keperluan khusus anda.
Atas ialah kandungan terperinci Bagaimana Mengeluarkan Aksara Haram dengan Berkesan daripada Laluan Fail dan Nama Fail dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!