我試圖直接從網址列表下載文件。WebClient.DownloadFile文件損壞
我能夠成功下載大多數文件,除了.docx。我能夠下載.docx文件,但是當我嘗試打開它時,錯誤消息顯示"The file is corrupt and cannot be opened"
,當我嘗試用Microsoft Word修復它時,我收到另一條錯誤消息,說"Microsoft Office cannot open this file because some parts are missing or invalid"
。當下載pdf文件時,我沒有任何問題。
我的代碼是非常簡單,它看起來像這樣:
WebClient webClient = new WebClient();
webClient.DownloadFile("http://somehost/somefile.docx", "C:\\somefolder\\somefile.docx");
webClient.Dispose(); //I added this line just to see if it will fix the problem but no it didn't
我去了在瀏覽器的網址,並確保該文件確實存在,並沒有損壞。網址很好,我可以直接從瀏覽器的url下載文件,並打開文件。
附加信息:
我發現一件事是對PDF的URL和DOCX網址不同,但我真的不認爲這有什麼與我的問題。當我在瀏覽器中訪問pdf網址時,瀏覽器中顯示pdf。但是,當我轉到docx url時,該頁面不顯示任何內容,但該文件的下載會自動啓動。我不認爲這會有所作爲,但僅供參考。
EDIT上午10時38
我只是想異步方法。我能夠下載docx文件並打開它,但它顯示爲空白的word文檔,但仍然不正確。我從瀏覽器下載的相同docx文件確實有內容。
webClient.DownloadFileAsync(new Uri("http://somehost/somefile.docx"),"C:\\somefolder\\somefile.docx");
該文件是公開的嗎?你需要特殊的憑據來訪問它嗎?餅乾等? – Arran
@Arran這些文件都是公開的,它是一個免費的在線存檔站點 – sora0419
不直接相關,但不是手動調用Dispose,而是查看'using'關鍵字。這是更好的練習! –