我正在尝试直接从网址列表中下载文件。
除了 .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
我访问了浏览器中的网址,确保文件确实存在并且没有损坏。网址很好,我可以直接从浏览器的网址下载文件,然后打开文件。
其他信息:
我确实找到了一个与pdf url和docx url不同的东西,但我真的不认为它与我的问题有任何关系。当我在浏览器中转到pdf网址时,浏览器中会显示 pdf 。但是,当我转到docx URL时,页面没有显示任何内容,但文件的下载会自动启动。我不认为这会有所作为,只是仅供参考。
编辑10:38 AM
我刚试过Async方法。我能够下载docx文件并打开它,但它看起来像一个空白的word文档,但仍然不正确。我从浏览器下载的同一个docx文件确实有内容。
webClient.DownloadFileAsync(new Uri("http://somehost/somefile.docx"),"C:\\somefolder\\somefile.docx");
答案 0 :(得分:0)
DownloadFileAsync在后台下载文件,您的应用程序可能会在下载完成之前终止。
您应该等待DownloadFileCompleted事件,或使用将等待文件下载的DownloadFile方法。
答案 1 :(得分:0)
感谢大家的帮助,我真的很感激。
我意识到问题实际上是我没有正确连接网址。是的,我犯了一个愚蠢的错误......
WebClient没有因格式错误(无论出于什么原因)而抛出错误,而且我的日志文件没有记录我尝试连接的实际网址,所以我没有意识到它做错了。< / p>
无论如何,谢谢大家的帮助和评论,帮助我弄清问题是什么。