我试图直接从urls列表下载文件。
除了.docx之外,我成功地下载了大多数文件。我能够下载.docx文件,但是当我试图打开它时,错误消息显示"The file is corrupt and cannot be opened",当我试图用Microsoft修复它时,我收到了另一个错误消息,名为"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我去了浏览器中的urls,并确保文件确实存在,并且没有损坏。urls很好,我可以直接从浏览器中的urls下载文件,然后文件就会打开。
附加信息:
我确实找到了一件与pdf url和docx url不同的东西,但我真的不认为它与我的问题有任何关系。当我转到浏览器中的pdf url时,pdf会显示在浏览器中。但是,当我转到docx url时,页面没有显示任何内容,但是文件的下载会自动启动。我不认为这会有什么影响,但只是FYI。
编辑10:38 10
我刚刚尝试了异步方法。我能够下载docx文件并打开它,但它显示为一个空白word文档,这仍然是不正确的。我从浏览器下载的docx文件确实有内容。
webClient.DownloadFileAsync(new Uri("http://somehost/somefile.docx"),"C:\\somefolder\\somefile.docx");发布于 2013-10-07 15:08:25
谢谢大家的帮助,我真的很感激。
我意识到问题实际上是我没有正确连接url。对,我犯了个愚蠢的错误.
WebClient没有为不正确的格式抛出错误(不管出于什么原因),而且我的日志文件也没有记录我试图连接到的实际url,所以我没有意识到它在做错误的事情。
无论如何,谢谢大家的帮助和意见,帮助我找出问题是什么。
发布于 2013-10-07 14:51:34
DownloadFileAsync在后台下载文件,您的应用程序可能会在下载完成之前终止。
您应该等待DownloadFileCompleted事件,或者使用将等待文件下载的DownloadFile方法。
https://stackoverflow.com/questions/19227156
复制相似问题