這就是我心目中:有沒有辦法從鎖定的文件中讀取數據?
var file = @"myfile";
File.Open(file,
FileMode.Open, FileAccess.ReadWrite, FileShare.None);
using (StreamReader rdr = new StreamReader(File.Open(file, FileMode.Open, FileAccess.Read, FileShare.Read)))
{
rdr.ReadToEnd();
}
var t = File.ReadAllBytes(file);
Neigther File.Open(file, FileMode.Open, FileAccess.Read, FileShare.Read)
也不File.ReadAllBytes
可以讀取文件中的數據。
從我以前的C++和winapi的日子裏,我記得,如果你有備份特權,曾經有一種很好的方式來讀取鎖定的文件,但我不知道如何在c#中獲取和使用它們。
任何人都可以提供一個關於如何在文件被鎖定後讀取文件的示例嗎?
如果它被鎖定,你不應該能夠讀取它。這只是一個鎖定點。 – Servy
有問題的鎖是由其他進程完成的。我將在更新程序中使用它來檢查是否需要替換文件(例如,如果更新過程需要重新啓動) –
「FileShare.None」是一個完全鎖定,因此嘗試從中讀取將不起作用。原始打開必須至少允許「FileShare.Read」 – Quintium