3

FileStreamが C#/.NET でやろうとしているのは、2 つのストリームを開くことです。1 つはファイルに追加し、もう 1 つはそれらの書き込みを非同期的に読み取ります (ネットワーク接続処理コードの単体テスト用)。ライターストリームを取得して非排他的ロック モードでファイルを開く方法がわからないため、コードは常に例外をスローします。

別のプロセスで使用されているため、プロセスはファイル 'C:\test.txt' にアクセスできません。

問題を示すコードの一部を次に示します。

FileStream fwriter = new FileStream("C:\\test.txt", FileMode.Append,
    FileAccess.Write, FileShare.Read);
FileStream freader = new FileStream("C:\\test.txt", FileMode.Open,
    FileAccess.Read, FileShare.Read);
4

2 に答える 2

5

この質問を参照してください: C# ファイルの読み取り/書き込みファイル共有が機能していないようです

つまり、フリーダーは FileShare.Write を指定して、ファイルにライターが既に存在することを許可する必要があります。

于 2008-10-09T21:15:34.910 に答える
0

それが役立つかどうかはわかりませんが、単体テストのみを行う場合は、ファイルの代わりにメモリ ストリームを使用する方が簡単ではないでしょうか?

于 2008-10-09T21:18:30.960 に答える