Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengakses Fail yang Dikunci oleh Proses Lain dalam VB.NET dan C#?
VB.NET dan Penyelesaian C# untuk Mengakses Fail yang Dikunci oleh Proses Lain
Mengakses fail secara serentak yang digunakan oleh berbilang proses selalunya menghasilkan pengecualian "sedang digunakan" yang digeruni. Panduan ini menyediakan kaedah yang boleh dipercayai untuk membaca dan mengubah suai fail dalam VB.NET dan C# walaupun ia dikunci oleh aplikasi lain.
Menggunakan FileShare
dalam VB.NET dan C#
Penyelesaian mudah melibatkan parameter FileShare
apabila membuka strim fail. Tetapan FileShare.ReadWrite
menandakan kesediaan aplikasi untuk berkongsi akses fail.
Contoh VB.NET:
<code class="language-vb.net">Dim strContents As String Dim objReader As StreamReader objReader = New StreamReader(FullPath, FileShare.ReadWrite) strContents = objReader.ReadToEnd() objReader.Close()</code>
Contoh C#:
<code class="language-csharp">using (var objReader = new StreamReader(FullPath, FileShare.ReadWrite)) { var strContents = objReader.ReadToEnd(); }</code>
Pendekatan Alternatif: Menggunakan FileStream
Kelas FileStream
menawarkan kawalan yang lebih halus ke atas akses fail. Contoh ini menunjukkan penggunaannya:
<code class="language-csharp">using (var logFileStream = new FileStream("c:\test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var logFileReader = new StreamReader(logFileStream)) { while (!logFileReader.EndOfStream) { string line = logFileReader.ReadLine(); // Process each line } }</code>
Kod ini membuka fail menggunakan FileStream
, menyatakan FileMode.Open
, FileAccess.Read
dan FileShare.ReadWrite
. A StreamReader
kemudian membaca kandungan fail dengan cekap.
Atribusi Sumber
Pendekatan FileStream
diadaptasi daripada: https://www.php.cn/link/c7876d6b0f9d5461fd3e87c0d1e51e12
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Fail yang Dikunci oleh Proses Lain dalam VB.NET dan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!