我正在訪問由第三方工具正在更新的文件,該文件不斷從com-port捕獲數據並填充文件。 對於這個文件,在填充數據時,我想對內容進行少量檢查並記錄我的目的狀態。FileInfo.length和File.ReadAllText
而且,做了檢查,我使用FileInfo.Length
操作知道文件的長度,我也用File.ReadAllText(Filename).Contains(SearchText)
檢查,如果所需的關鍵字是文件可用(這是在不斷更新)。 我的問題是,使用FileInfo.Length
和File.ReadAllText
來運行的文件是否會影響第三方工具所做的更新操作。 由於這些檢查,第三方工具將更新文件是否會有數據丟失?
此外,會有什麼效果,如延遲更新此文件等?
是的,這很可能。 File.ReadAllText()將文件鎖定在阻止應用程序寫入的文件上。您必須使用通過FileShare.ReadWrite打開的FileStream並將其傳遞給StreamReader。這也是一個相當昂貴的操作,這些文件可能會變得很大,最終變成DOS攻擊。 –
好的。我認爲你正在回答我的第二個問題(另外,是否會有任何影響,如延遲更新此文件等?)...在這種情況下,至少當File.ReadAllText釋放鎖定時,將第三方工具能夠繼續更新文件(不丟失數據)?延遲應該很好,但不會丟失數據 – giboo