別のプログラムで作成され、まだ処理されている c# 経由でファイルにアクセスしたい。
現在、Windowsエクスプローラーを介してファイルを別の場所にコピーし、そのコピーで作業しています。コピーは大きいので、元のファイルをそのまま使用することをお勧めします。何か方法はありますか?
通常の FileStream では、共有アクセス モードは許可されません。私は両方のプログラムを管理しているので、必要に応じてライターも変更できます。
1913 次
2 に答える
4
書き込みと読み取りを行うプログラムに適切な FileShare が設定されていることを確認する必要があるため、プログラム書き込み用の FileStream コンストラクターに FileShare.Read を渡す必要があります。
new FileStream("C:/Users/phil/tmp.txt",FileMode.Create,FileAccess.Write,FileShare.Read)
また、ファイルを読み込んでいるプログラムに対して FileShare.ReadWrite が有効になっていることを確認する必要があります。
new FileStream("C:/Users/phil/tmp.txt",FileMode.Open,FileAccess.Read,FileShare.ReadWrite)
これにより、FileStream コンストラクターがファイル自体に正しいロックを設定します。
msdn でコンストラクターの詳細を確認できます: http://msdn.microsoft.com/en-us/library/5h0z48dh.aspx (FileShare パラメーターを取る他のオーバーロードもあります)
于 2011-07-13T12:05:57.643 に答える