サードパーティプログラムによって定期的に書き込まれているファイルを読み込んでいます。サードパーティプログラムでIOExceptionを発生させずにファイルを読み取る
using (FileStream fs = new FileStream(
FullPath,
FileMode.Open,
FileAccess.Read,
FileShare.ReadWrite))
サードパーティ製のプログラムがファイルに書き込みを行っているが、時にサードパーティ製のプログラムを読み込むために、私は開いているファイルを持っているので、たまにFileShare.None
を使用しているしかし、下記のFileStreamを使用して イム読み取り排他アクセスでファイルを開こうとしますが失敗します。
サードパーティのプログラムで問題を起こすことなくこのファイルを読むにはどうすればよいですか? 別のアプリケーションを優先するために私の読書を解放しても構いません。これを行う方法は?
一時的な場所にコピーしてそこから読み取ろうとしましたか?私が行うことは、通常、ファイルを使用しようとするとfalseを返す関数を作成することですが、そうでなければtrueを返し、ファイルをコピーして、それを使用できる場所に移動しようとします。プロダクションファイルを使って作業することは、特に混在している2つのプロセスでは危険な可能性があります。 – Bearcat9425
File.CopyはバックグラウンドでFileStreamを実行するだけです。問題は私が読んでロックしようとするときではない。そのファイルにアクセスすると、第三者のプログラムは排他的アクセスを得ようとしますが、私はそれを開いているために傾けません。 – CathalMF
ファイルを一時的な場所にコピーし、プログラムがその一時ファイルを使用するようにして、元のファイルが使用されていないようにして、サードパーティのプログラムが問題なくアクセスできるようにするとどうなりますか?それが意味をなさない場合:D – aladd04