ホームページ > バックエンド開発 > C++ > 別のプログラムで使用中のファイルを読み取るにはどうすればよいですか?

別のプログラムで使用中のファイルを読み取るにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-16 15:53:12
オリジナル
361 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート