Rumah >pembangunan bahagian belakang >C++ >Bagaimana saya boleh menyemak ketersediaan fail di C# tanpa menggunakan pengendalian pengecualian?

Bagaimana saya boleh menyemak ketersediaan fail di C# tanpa menggunakan pengendalian pengecualian?

Barbara Streisand
Barbara Streisandasal
2025-02-02 22:06:10293semak imbas

How Can I Check File Availability in C# Without Using Exception Handling?

Ketersediaan fail boleh diperiksa tanpa pemprosesan yang tidak normal

Dalam pengaturcaraan, akses kepada yang sedang digunakan oleh proses lain boleh menyebabkan kesilapan. Ini mungkin berlaku apabila program cuba mengakses fail yang belum disimpan kembali ke sistem fail. Untuk mengelakkan kesilapan tersebut, kaedah yang boleh dipercayai diperlukan untuk menentukan sama ada fail sedang digunakan.

Walaupun rawatan yang tidak normal adalah kaedah yang sama, sesetengah pemaju lebih cenderung untuk mengelakkannya kerana keutamaan atau gaya pengekodan tertentu. Nasib baik, terdapat kaedah lain untuk memeriksa ketersediaan fail.

kunci

Cara yang berkesan untuk mengesahkan keadaan kunci fail adalah menggunakan kelas FileStream dalam C#. Kod berikut menunjukkan teknologi menggunakan fileshare.none dan fileaccess.READ:

Dengan menggunakan , fail akan dibuka oleh tanah untuk dibaca. Jika sebarang proses lain mengakses fail,

akan dilemparkan, menunjukkan bahawa fail sedang dikunci. Kaedah ini membolehkan diperiksa dengan pasti ketersediaan fail tanpa menggunakan rawatan yang tidak normal. Jika fail tidak wujud atau tidak dapat diakses, pembina
<code class="language-csharp">protected virtual bool IsFileLocked(FileInfo file)
{
    // 尝试以独占读取访问方式打开文件。
    using (FileStream stream = new FileStream(file.FullName, FileMode.Open, FileAccess.Read, FileShare.None))
    {
        // 如果文件未锁定,此行将成功执行。
        stream.Close();
    }

    // 文件未锁定。
    return false;
}</code>
akan membuang kelainan, jadi kod ini masih secara tersirat bergantung kepada pemprosesan yang tidak normal. Untuk mengelakkan pemprosesan yang tidak normal, API bawah bawah perlu digunakan, tetapi ini akan meningkatkan kerumitan kod. Oleh itu, kaedah ini adalah penyelesaian lipat yang beratnya kesederhanaan dan sepenuhnya mengelakkan rawatan yang tidak normal.

Atas ialah kandungan terperinci Bagaimana saya boleh menyemak ketersediaan fail di C# tanpa menggunakan 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