假设有一个winform应用程序,它将更新的程序集从源文件夹A复制到目标文件夹B。我使用简单的DirectoryInfo.GetFiles方法填充列表视图,比较文件夹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锁定文件!这个是可能的吗?
有人能建议一种绕过这个问题的方法吗?
谢谢你,南多
发布于 2010-08-26 22:31:59
不,锁定文件的是File.Open。
试着把它用到:
using(var file = File.Open(file.FullName, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
// process here
}https://stackoverflow.com/questions/3576115
复制相似问题