Mengelakkan pengecualian apabila mengesahkan kunci fail dalam C#
Menguruskan konflik akses fail di C# boleh menjadi rumit. Artikel ini membentangkan kaedah proaktif untuk memeriksa ketersediaan fail tanpa bergantung pada pengendalian pengecualian, menawarkan penyelesaian yang lebih mantap. Masalahnya timbul ketika cuba mengakses fail yang sedang ditulis, yang membawa kepada "fail dalam penggunaan" kesilapan.
Pendekatan proaktif menggunakan FileAccess.Read
untuk mengesahkan ketersediaan fail secara proaktif. Coretan kod yang disemak ini menunjukkan kaedah yang lebih cekap dan boleh dipercayai: FileAccess.Read
protected virtual bool IsFileLocked(FileInfo file) { using (FileStream stream = file.Open(FileMode.Open, FileAccess.Read, FileShare.None)) { stream.Close(); return false; // File is accessible } catch (IOException) { // File is locked or unavailable return true; } }
Penjelasan
Kod cuba membuka fail dalam mod baca sahaja () dengan akses eksklusif (FileAccess.Read
akan gagal, membuang FileShare.None
. Blok Open
mengendalikan ini, kembali IOException
untuk menunjukkan fail dikunci. Pembukaan fail yang berjaya bermakna fail tersedia, dan try-catch
dikembalikan. Pendekatan ini mengelakkan overhead prestasi dan isu -isu yang berpotensi yang berkaitan dengan hanya bergantung pada pengendalian pengecualian. true
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengesahkan secara proaktif kunci fail di C# tanpa menggunakan pengecualian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!