2009-04-06 19 views
3

1つのC++プログラムがログファイルを満たしていますが、ログファイルのハンドルを保持しています。このログファイルをC#プログラムで開き、解析して特定の行がログファイルに追加されているかどうかを確認します。ファイルを強制的に開く

しかし、C#でログファイルを開くと、「このファイルは別のプロセスで使用されています」というIOExceptionが発生します。コードを使用:それを開くことが可能であるべきであるので、正常に動作します

m_hFile = tsopen(m_csFilePath, 
_O_WRONLY|_O_APPEND|_O_TRUNC|_O_CREAT|_O_BINARY, 
_SH_DENYWR, 
_S_IREAD | _S_IWRITE); 

メモ帳でファイルを開く:

using(StreamReader reader = File.OpenRead(myFile))//IOException 

C++プログラムが使用してファイルを(私はC++のプログラムを変更することはできません)が開きます。 C#プログラムで強制的に読み取り専用モードでファイルを開くことはできますか?

答えて

8

おそらくReadWriteFileShareのファイルを開こうとしますか?

File.Open(myFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) 
+0

気楽に、FileShare列挙型の意味を誤解しました。 – Carra

1

ログファイルのスナップショットコピーをFile.Copyを使用して開こうとすることができます。

関連する問題