Mengakses Fail Serentak
Membaca fail yang sedang ditulis oleh program lain memberikan cabaran yang unik. Kaedah pembacaan fail standard sering gagal, membuang pengecualian yang menunjukkan status fail terkunci.
Penyelesaian untuk Akses Fail Serentak
Untuk berjaya membaca fail sedemikian, anda memerlukan strategi yang menampung akses serentak. Penyelesaian biasa melibatkan membuka fail dalam mod yang membenarkan kedua-dua membaca dan menulis.
Pelaksanaan dalam C#/.NET
Coretan kod C# berikut menunjukkan pendekatan ini menggunakan FileStream
dan StreamReader
:
<code class="language-csharp">using System; using System.IO; namespace ConcurrentFileReader { class Program { static void Main(string[] args) { string filePath = "c:\test.txt"; // Open the file for reading and writing concurrently FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); StreamReader reader = new StreamReader(fileStream); // Read and process the file line by line while (!reader.EndOfStream) { string line = reader.ReadLine(); // Process the line Console.WriteLine(line); } // Close resources reader.Close(); fileStream.Close(); } } }</code>
Kuncinya ialah FileShare.ReadWrite
. Ini memastikan fail dibuka dalam mod kongsi, membenarkan operasi baca dan tulis serentak tanpa gangguan. Program ini kini boleh membaca kandungan fail sementara proses lain terus menulis kepadanya. Ambil perhatian bahawa data yang dibaca mungkin tidak lengkap atau hanya mencerminkan sebahagian daripada kandungan fail pada masa tertentu, bergantung pada aktiviti proses penulisan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Fail yang Digunakan oleh Program Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!