为什么我在删除此文件时收到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);
}
}
答案 0 :(得分:3)
我相信当您拨打File.Delete
时,文件仍处于打开状态会导致您的问题
尝试将File.Delete
调用移出using
块:
using (var lockFile = new FileStream(lockFilePath, ...))
{
...
}
File.Delete(lockFilePath);
或者只需在lockFile.Close
之前致电File.Delete
:
finally
{
lockFile.Close();
File.Delete(lockFilePath);
}