Rumah >pembangunan bahagian belakang >C++ >Bagaimana Mengeluarkan Aksara Haram dengan Berkesan daripada Laluan Fail dan Nama Fail dalam C#?

Bagaimana Mengeluarkan Aksara Haram dengan Berkesan daripada Laluan Fail dan Nama Fail dalam C#?

Linda Hamilton
Linda Hamiltonasal
2025-01-21 08:51:101008semak imbas

How to Effectively Remove Illegal Characters from File Paths and Filenames in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn