2009-04-06 5 views
3

Одна программа на C++ заполняет файл журнала, он хранит дескриптор файла журнала. Я хочу открыть этот файл журнала с помощью программы C# и проанализировать его, чтобы увидеть, добавлена ​​ли определенная строка в файл журнала.Принудительно открыть файл

Однако, если я открою файл журнала с помощью C#, я получаю «этот файл используется другим процессом» IOException. Код, используемый:

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

Программа C++ открывает файл с (я не могу изменить программу на C++):

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

Открытие файла с блокнотом работает отлично, так что должно быть возможным, чтобы открыть его. Могу ли я заставить программу C# открыть файл в режиме readonly?

ответ

8

Возможно, попробуйте открыть файл с помощью ReadWriteFileShare?

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

Улыбается, неправильно понимает значение перечисления FileShare. – Carra

1

Вы можете сделать снимок копию файла журнала с помощью File.Copy и попытаться открыть это.

Смежные вопросы