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

Bagaimanakah Saya Boleh Mengendalikan UnauthorizedAccessException Apabila Menggunakan Directory.GetFiles untuk Melintasi Direktori?

Mary-Kate Olsen
Lepaskan: 2025-01-07 15:06:44
asal
859 orang telah melayarinya

How Can I Handle UnauthorizedAccessException When Using Directory.GetFiles to Traverse Directories?

Kendalikan pengecualian UnauthorizedAccessException secara elegan yang berlaku apabila Directory.GetFiles merentasi direktori

Apabila melakukan operasi fail dan direktori, anda mungkin menghadapi pengecualian Directory.GetFiles apabila menggunakan kaedah UnauthorizedAccessException. Pengecualian ini berlaku apabila kaedah cuba mengakses direktori yang pengguna tidak mempunyai kebenaran yang sesuai.

Untuk menyelesaikan masalah ini, disyorkan untuk menyiasat direktori satu demi satu dan bukannya merentasi keseluruhan pepohon direktori. Pendekatan ini membolehkan kawalan yang lebih halus ke atas operasi. Kod berikut menunjukkan pendekatan yang lebih baik:

<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

Dalam kaedah ini, UnauthorizedAccessException ditangkap dan dikendalikan dengan anggun, membenarkan atur cara meneruskan pelaksanaan dan mungkin menemui fail lain yang boleh diakses. Lelaran diteruskan melalui hierarki direktori, memanggil dirinya secara rekursif untuk meneroka subdirektori.

Dengan menggunakan teknik ini, anda boleh mengelakkan Directory.GetFiles penamatan kaedah kerana ralat yang dinafikan akses dan mengekalkan kawalan proses traversal direktori. Kaedah ini menggunakan gelung foreach dan bukannya ToList().ForEach(), menjadikannya lebih mudah dibaca dan cekap.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan UnauthorizedAccessException Apabila Menggunakan Directory.GetFiles untuk Melintasi Direktori?. 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