Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menguji Akses Tulis dengan Amanah kepada Direktori dalam C#?

Bagaimanakah Saya Boleh Menguji Akses Tulis dengan Amanah kepada Direktori dalam C#?

DDD
DDDasal
2025-01-09 07:37:45703semak imbas

How Can I Reliably Test Write Access to a Directory in C#?

Kaedah yang Lebih Teguh untuk Mengesahkan Akses Tulis kepada Direktori dalam C#

Menyemak kebenaran menulis direktori secara langsung mungkin tidak boleh dipercayai. Hanya menanyakan kebenaran tidak menjamin akses tulis sebenar. Pendekatan yang lebih boleh dipercayai melibatkan percubaan operasi tulis.

Berikut ialah kaedah yang dipertingkatkan:

<code class="language-csharp">public bool IsDirectoryWritable(string dirPath, bool throwIfFails = false)
{
    try
    {
        // Create a temporary file to test write access.  It's automatically deleted.
        using (FileStream fs = File.Create(Path.Combine(dirPath, Path.GetRandomFileName()), 1, FileOptions.DeleteOnClose)) { }
        return true;
    }
    catch (Exception ex)
    {
        if (throwIfFails)
            throw; // Re-throw the exception for higher-level handling
        else
            return false;
    }
}</code>

Fungsi ini cuba mencipta fail sementara dalam direktori sasaran. FileOptions.DeleteOnClose memastikan fail dialih keluar secara automatik, tidak meninggalkan kesan. Kejayaan menunjukkan akses tulis; kegagalan mengembalikan false (atau membuang pengecualian jika throwIfFails adalah benar). Ini secara langsung menguji keupayaan menulis, mengelakkan perangkap bergantung semata-mata pada semakan kebenaran. Ia ringkas dan mudah difahami.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menguji Akses Tulis dengan Amanah kepada Direktori 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