2016-01-27 60 views
0

我試圖使用WebClient的方法DownloadFile但它給我的錯誤下載一個文件該文件已被其他進程訪問WebClient.FileDownlOad安寧錯誤

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字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它甚至未使用的代碼creaated文件給予同樣的錯誤。

+0

似乎該文件是隻讀的。檢查文件的屬性。也是如何創建這個文件。通過代碼?提供有關該問題的更多細節。 –

+0

我查過的文件不是隻讀的。並且能夠編輯它。而我通過aspose word api創建 – Alex

+0

保存後關閉文件 – Isuru

回答

1

給出一個不同於下載源路徑的下載文件的保存路徑。如果要替換文件,請在使用File.replace()方法處理Web客戶端後執行此操作。

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); 
+0

對象沒有關閉或配置方法,所以我將對象值null – Alex

+0

分配給它,並且它甚至給不使用代碼創建的文件提供相同的錯誤。 – Alex

+0

好吧,我得到你的問題。您正嘗試將文件下載到與下載源路徑相同的位置。 'client.downloadFile(Server.MapPath(「invoice /」+ Request.QueryString [「id」] .ToString()+「.docx」),「」Differentpath「))'; – Isuru

相關問題