我使用winrar在我的应用程序中提取rar文件。之后提取物是竞争我需要的 移动提取的文件,但它有时会出现此错误: 该进程无法访问该文件,因为它正由另一个进程使用
我猜错误是关于winrar所以我杀了winrar进程但错误存在
我使用(Process.HasExited)强制程序睡眠5分钟我可以杀死进程但有以下问题: 但该进程无法访问该文件,因为它正由另一个进程使用 并使用代码杀死进程:
try
{
Process proc = Process.GetProcessById(id);
proc.Kill();
}
catch (Exception ex)
{
Process[] processlist = Process.GetProcesses();
foreach (Process p in Process.GetProcesses("."))
{
try
{
if (p.ProcessName.ToLower().Contains("winrar"))
{
string str = Bussiness.ClsCommandLine.GetCommandLine(p);
if (str.ToLower().Contains((fileName.ToLower()))
{
Process prc = Process.GetProcessById(p.Id);
prc.Kill();
}
}
}
catch (Exception ex1)
{
result = false;
}
}
}
任何想法?
答案 0 :(得分:0)
不能评论,所以我必须添加一个答案:
(假设您在win vista之后)使用资源监视器查看关联的句柄(资源监视器 - > CPU - >检查所有复选框 - >关联的句柄)并查找具有的任何进程(图像) a处理您要移动的文件
例如,图像 "的WinRAR.exe" 可能有" c:\ users \ ~username \ my documents \ directory \ uncompressedfile.file"
这可以让您了解您正在尝试阅读/修改/
的文件的内容