Вот что я имею в виду:Есть ли способ прочитать данные из заблокированного файла?
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
Замок, о котором идет речь, выполняется другим процессом. Я собираюсь использовать это в updater, чтобы проверить, нуждаются ли файлы в замене или нет (например, если процесс обновления требует перезагрузки) –
«FileShare.None» - это полный замок, поэтому попытка чтения из него не будет работать , Оригинальный open должен как минимум разрешить «FileShare.Read» – Quintium