想象一下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锁定文件!这可能吗?
有人可以建议绕过这个问题吗?
谢谢你, 南多
答案 0 :(得分:4)
不,锁定文件的是File.Open
。
尝试使用它:
using(var file = File.Open(file.FullName, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
// process here
}