WebClient.FileDownlOad GIVIn错误,即文件a被另一个进程访问

时间:2016-01-27 10:26:12

标签: c# asp.net download system.net

我正在尝试使用webclient方法DownloadFile下载文件但是它给了我错误

 The process cannot access the file '...\d915877c-cb7c-4eeb-97d8-41d49b75aa27.docx' because it is being used by another process.

但是当我通过点击打开文件时,它会打开。

同样的问题请求相同的信息,但没有一个是可接受的答案。

任何帮助将不胜感激

可能不是让文件去了。不管它是什么,但经过大量搜索我无法找到解决方案

以下是创建文件的代码

  Document d = new Document();
  d.Save(HttpContext.Current.Server.MapPath(@"Invoice\" + iname + ".docx"));

我正在使用aspose word dll

以及我访问它的方式

 using (var client = new System.Net.WebClient())
        {

            client.UseDefaultCredentials = true;
            client.DownloadFile(Server.MapPath("invoice/" + Request.QueryString["id"].ToString() + ".docx"),Server.MapPath("invoice/" +Request.QueryString["id"].ToString() + ".docx"));
            client.Dispose();
        }

和BTW即使对于未使用代码创建的文件也会出现相同的错误。

1 个答案:

答案 0 :(得分:1)

提供保存下载文件的不同路径,该文件与下载源路径不同。如果要替换文件,请在使用File.replace()方法处理webclient后执行此操作。

string downloadPath = "Your download path";      
string destinationPath = "the path where the file should be saved";`//this should be different from "download path"                   
 File.Download(downloadPath,destinationPath);