首頁 >後端開發 >C++ >如何讀取另一個程式正在使用的檔案?

如何讀取另一個程式正在使用的檔案?

Barbara Streisand
Barbara Streisand原創
2025-01-16 15:53:12397瀏覽

How Can I Read a File in Use by Another Program?

同時存取檔案

讀取由另一個程式主動寫入的檔案是一個獨特的挑戰。 標準文件讀取方法經常失敗,拋出指示文件鎖定狀態的例外狀況。

並發文件存取解決方案

要成功讀取這樣的文件,您需要一個適應並發存取的策略。 常見的解決方案是以允許讀取和寫入的模式開啟檔案。

C#/.NET 中的實作

以下 C# 程式碼片段使用 FileStreamStreamReader 示範了此方法:

<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>

關鍵是FileShare.ReadWrite。這可確保檔案以共用模式打開,從而允許同時進行讀寫操作而不會中斷。 該程式現在可以讀取檔案的內容,同時另一個進程繼續寫入該檔案。 請注意,讀取的資料可能不完整或僅反映給定時刻文件內容的一部分,具體取決於寫入過程的活動。

以上是如何讀取另一個程式正在使用的檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn