按解決方案張貼在下面的文章中,我已經創建了形式寫入日誌條目時,但是我得到file in use
例外讀取日誌文件如何讀取日誌從日誌文件,因爲它發生
BackgroundWorker & Timer, reading only new lines of a log file?
。
幫助
按解決方案張貼在下面的文章中,我已經創建了形式寫入日誌條目時,但是我得到file in use
例外讀取日誌文件如何讀取日誌從日誌文件,因爲它發生
BackgroundWorker & Timer, reading only new lines of a log file?
。
幫助
當我做這樣的文件訪問/操縱我通常照顧兩件事情。
首先,閱讀中,我使用下面的代碼(見FileShare enumeration):
using (Stream s = File.Open(path, FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite)) { ... }
其次,我平時寫一個while循環,打開文件進行讀/寫這樣的(代碼草案):
int tries=0;
while (tries < 10) {
try {
// try to open file for your operation
break;
} catch (IOException) {
tries++;
Thread.Sleep(200);
}
}
編輯:意外地,我用第一次在我的答案FileShare.Read而不是更合適的FileShare.ReadWrite。現在我已經糾正它。
實際上可以將文件同時寫入和讀取。如[tail](http://en.wikipedia.org/wiki/Tail_(Unix))所示,用於查看正在寫入日誌的日誌,這似乎是OP試圖複製的內容。 – Clafou
我只是想給出一些一般的想法。 –
你需要確保你的日誌讀取代碼打開文件中ReadWrite模式。看到這個其他職位的出色答案的完整解釋:How do I open an already opened file with a .net StreamReader?
_「help」_ - 是你的問題嗎?你是否可以證明你明白了這個問題,你知道_something_關於如何打開,鎖定,讀寫文件的工作原理,你是否已經將問題指向了一個可重複的測試用例,或者你只是想修復該死的代碼? – CodeCaster
你是指「閱讀」日誌條目嗎? – DonBoitnott
@Nitin你需要正確處理streamReader或fileStream。 – Praveen