Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengendalikan UnauthorizedAccessException Apabila Menggunakan Directory.GetFiles?

Bagaimanakah Saya Boleh Mengendalikan UnauthorizedAccessException Apabila Menggunakan Directory.GetFiles?

Susan Sarandon
Lepaskan: 2025-01-07 15:18:40
asal
592 orang telah melayarinya

How Can I Handle UnauthorizedAccessException When Using Directory.GetFiles?

Pengecualian disebabkan oleh kaedah Directory.GetFiles disebabkan oleh sekatan akses

Apabila mengakses sistem fail rangkaian atau sistem fail dalam persekitaran terkawal, anda mungkin menghadapi akses terhad kepada folder tertentu. Ini menyebabkan kaedah seperti Directory.GetFiles membuang pengecualian, mengganggu pelaksanaan program.

Analisis Masalah

Apabila kaedah Directory.GetFiles menemui direktori yang tidak boleh diakses, ia akan membuang pengecualian UnauthorizedAccessException. Malangnya, sebelum menangkap pengecualian ini, kaedah telah gagal dan tidak dapat pulih.

Penyelesaian: Kesan direktori satu demi satu

Untuk menyelesaikan masalah ini, disyorkan untuk menyiasat satu direktori pada satu masa dan bukannya mencari secara rekursif keseluruhan pepohon direktori. Dengan cara ini, anda boleh menangkap dan mengendalikan pengecualian berdasarkan setiap direktori, mengelakkan penamatan program pramatang.

Contoh pelaksanaan

Berikut ialah kaedah contoh yang berulang melalui pepohon direktori dan menambah laluan fail pada senarai, tidak termasuk fail daripada direktori yang dinafikan akses:

<code class="language-csharp">private static void AddFiles(string path, IList<string> files)
{
    try
    {
        foreach (string file in Directory.GetFiles(path))
        {
            files.Add(file);
        }

        foreach (string subdirectory in Directory.GetDirectories(path))
        {
            AddFiles(subdirectory, files);
        }
    }
    catch (UnauthorizedAccessException ex)
    {
        // 忽略无法访问的目录,继续处理其他目录
    }
}</code>
Salin selepas log masuk

Kaedah ini memastikan program meneruskan pelaksanaan walaupun ia menemui direktori yang tidak mempunyai akses, membolehkan anda memproses fail dalam direktori yang mempunyai akses. Versi yang dipertingkatkan ini mengelakkan penggunaan ToList().ForEach() dan menggunakan gelung foreach yang lebih jelas dan mudah dibaca, meningkatkan kebolehselenggaraan kod.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan UnauthorizedAccessException Apabila Menggunakan Directory.GetFiles?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan