这就是我心目中:有没有办法从锁定的文件中读取数据?
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