windows应用程序A.exe,放在我的某个共享目录里面,在局域网内的另一台机器上作了一个快捷方式。
A.exe执行后,会调用另一个下载程序从服务器上下载最新的版本到临时文件夹中,然后删除A.exe,再
从临时文件夹拷贝一个A.exe到当前目录。以上执行在本机没有问题,但是如果另外一台机器上正在
通过快捷方式运行A.exe,那么本机执行的下载程序可以删除A.exe,但是无法从临时文件拷贝A.exe到当前目录。试验了一下,如果在本机打开A.exe ,然后用鼠标右键选删除,会弹出不能删除的信息;如果是别的机器上打开
A.exe,则不会弹出信息,可以删除掉。我想要确保A.exe被删除掉然后copy一个新的A.exe,如果只是被删除了没有copy一个新的过来就坏了不知道我说清楚了没有下面的代码片断是下载程序(Update.exe)的部分代码:删除A.exe所在目录的所有文件:
private bool getDirectories(string path)
{
try
{
string[] fileNames = Directory.GetFiles(path);
string[] directories = Directory.GetDirectories(path);
foreach (string file in fileNames)
{
System.IO.File.Delete(file);
}
foreach (string dir in directories)
{
int x=dir.LastIndexOf(@"\");
string dirname=dir.Substring(x+1);
if(dirname=="EXE" || dirname=="Ini" || dirname=="Runtime")
{
getDirectories(dir);
}
}
return true;
}
catch(Exception)
{
return false;
}
}拷贝文件:
private bool CopyFolder(string sourcepath,string targetpath)   
{
try
{
DirectoryInfo di=new DirectoryInfo(sourcepath);         
foreach(FileSystemInfo fsi in di.GetFileSystemInfos())           
{       
String destName=Path.Combine(targetpath,fsi.Name);       
if(fsi is FileInfo)     
{   
File.Copy(fsi.FullName,destName);       
}   
}
return true;
}
catch(Exception)
{
return false;
}
}