Я использую этот фрагмент кода, чтобы проверить, используется ли файл уже, но он не работает.
protected bool IsFileLocked(FileInfo file) {
FileStream stream = null;
try {
stream = file.Open(FileMode.Open, FileAccess.Write, FileShare.Write);
} catch (IOException) {
return true;
} finally {
if (stream != null)
stream.Close();
}
}
Затем я попытался переименовать файл, пока он копируется, но все равно он не выдаетисключения.
protected bool IsFileLocked(FileInfo file) {
string renameToFileName = string.Empty;
bool isFileLocked = true;
int i = 0;
while (isFileLocked) {
i++;
renameToFileName = file.FullName + i.ToString();
try {
File.Move(file.FullName, renameToFileName);
isFileLocked = false;
} catch (Exception) {
Thread.Sleep(1000);
}
}
File.Move(renameToFileName, file.FullName);
}
Удивительно, но файл успешно переименовывается при копировании из другого процесса.
Кто-нибудь знает, как это сделать?Пожалуйста, совет