想象一下一个Winform应用程序,它会从源文件夹A复制更新的程序集到目标文件夹B。我使用简单的DirectoryInfo.GetFiles方法来填充一个ListView,比较文件夹A和B中程序集的版本;如果有一些程序集是新的,我就开始我的更新方法。在这个方法中,在复制之前,我尝试检查B文件夹中的所有文件是否正在使用:
var B = new DirectoryInfo("myBfolder");
foreach (var file in aFolder.GetFiles())
{
try
{
//File not in use
File.Open(file.FullName, FileMode.Open, FileAccess.ReadWrite, FileShare.None);
}
catch (Exception ex)
{
//File in use!
}
}
由于之前的UpdateListView代码使用FileInfo获取要显示的信息,导致所有文件都被锁定了!
FileInfo会锁定文件吗?这真的可能吗?
有人能建议一种绕过这个问题的方法吗?
谢谢, Nando