尽管解锁,文件仍保持锁定状态
File remains locked despite unlocking
为什么我要删除这个文件时会收到IOException?确定是我解锁了?显然另一个进程仍在使用该文件,尽管没有以其他方式触及它。
using (var lockFile = new FileStream(lockFilePath, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
try
{
var productCount = downloadStuff();
}
catch (Exception e)
{
}
finally
{
lockFile.Unlock(0,lockFile.Length);
File.Delete(lockFilePath);
}
}
我认为您的问题是由于调用 File.Delete
.
时文件仍处于打开状态引起的
尝试将 File.Delete
调用移出 using
块:
using (var lockFile = new FileStream(lockFilePath, ...))
{
...
}
File.Delete(lockFilePath);
或者在File.Delete
之前直接调用lockFile.Close
:
finally
{
lockFile.Close();
File.Delete(lockFilePath);
}
为什么我要删除这个文件时会收到IOException?确定是我解锁了?显然另一个进程仍在使用该文件,尽管没有以其他方式触及它。
using (var lockFile = new FileStream(lockFilePath, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
try
{
var productCount = downloadStuff();
}
catch (Exception e)
{
}
finally
{
lockFile.Unlock(0,lockFile.Length);
File.Delete(lockFilePath);
}
}
我认为您的问题是由于调用 File.Delete
.
时文件仍处于打开状态引起的
尝试将 File.Delete
调用移出 using
块:
using (var lockFile = new FileStream(lockFilePath, ...))
{
...
}
File.Delete(lockFilePath);
或者在File.Delete
之前直接调用lockFile.Close
:
finally
{
lockFile.Close();
File.Delete(lockFilePath);
}