Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh menyemak ketersediaan fail di C# tanpa bergantung semata -mata pada pengendalian pengecualian?

Bagaimanakah saya boleh menyemak ketersediaan fail di C# tanpa bergantung semata -mata pada pengendalian pengecualian?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-02-02 22:21:12950semak imbas

How Can I Check for File Availability in C# Without Relying Solely on Exception Handling?

pengesahan akses fail yang mantap di C#

Menguruskan akses fail dengan cekap di C# memerlukan mengesahkan ketersediaan fail untuk mengelakkan kesilapan runtime seperti "fail yang digunakan." Walaupun pengendalian pengecualian adalah perkara biasa, pendekatan yang lebih proaktif meningkatkan kejelasan kod dan keteguhan.

cek ketersediaan fail yang lebih dipercayai

Kaedah ini menggunakan

dan FileAccess untuk memeriksa kunci fail: FileShare

<code class="language-csharp">protected virtual bool IsFileLocked(FileInfo file)
{
    try
    {
        using (FileStream stream = file.Open(FileMode.Open, FileAccess.Read, FileShare.None))
        {
            stream.Close();
        }
        return false; // File is accessible
    }
    catch (IOException)
    {
        return true; // File is locked or unavailable
    }
}</code>
Kod ini cuba membuka fail dalam mod baca dengan akses eksklusif (

). Operasi yang berjaya menunjukkan fail tersedia. FileShare.None yang menandakan fail dikunci oleh proses lain atau tidak boleh diakses. IOException

Pertimbangan penting:

    Kaedah ini memeriksa
  • baca akses. Ubah suai ke FileAccess untuk pemeriksaan akses tulis. FileAccess.Write
  • Walaupun ini meminimumkan pergantungan langsung pada pengecualian untuk kawalan aliran, pengendalian pengecualian tetap penting untuk pengurusan ralat. Blok
  • dengan anggun mengendalikan potensi try-catch. IOExceptions
Pendekatan yang lebih baik ini memberikan cara yang lebih mudah diramalkan dan kurang rawan untuk memeriksa ketersediaan fail sebelum mencuba akses.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menyemak ketersediaan fail di C# tanpa bergantung semata -mata pada pengendalian pengecualian?. 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