我正在使用这段代码来检查文件是否已经在使用但它不起作用。
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);
}
令人惊讶的是,文件在从另一个进程复制时成功重命名。
有人知道怎么做吗?请建议