3
有沒有辦法寫入鎖定的文件,而不管打開哪個程序/進程?無論鎖定狀態如何,寫入鎖定的文件
場景:
- 作爲服務運行一個商業產品,鎖定一個日誌文件。
- 服務無法停止,因爲它會影響客戶。
- 想在文件末尾註入一行作爲標記。
獲取錯誤:進程無法訪問文件,因爲它正在被另一個進程使用。
是否有追加的鎖定文件中的行什麼辦法?
而且,怕打破鎖定狀態,因爲這可能會導致商業計劃打破。
最初想到批處理文件,直到找出日誌文件被鎖定。將做PowerShell或任何語言可以將此取消。
無論您做什麼,持有鎖的程序都會覆蓋您的標記,因爲它的文件位置指針位於其之前它寫入。 –
不可以。正如@David所說,如果你這樣做了,最終會被覆蓋。想想看:我打開了文件並寫入了10個字節,然後在文件末尾寫了一行文本。我仍然認爲文件的末尾在第10個字節處,並且從第11個字節開始寫下一行(覆蓋您添加的行)。文件鎖定出於某種原因 - 防止其他人在鎖定文件時訪問該文件。 –
感謝大衛和肯,好點。希望文件將被鎖定,但他們只是附加。但如果它被鎖定,那麼它可能使用文件指針而不是追加。任何方式來添加一行只是爲了看看會發生什麼? –