首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebClient.DownloadFile文件损坏

WebClient.DownloadFile文件损坏
EN

Stack Overflow用户
提问于 2013-10-07 14:14:20
回答 2查看 6.1K关注 0票数 0

我试图直接从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文件。

我的代码非常简单,如下所示:

代码语言:javascript
复制
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文件确实有内容。

代码语言:javascript
复制
webClient.DownloadFileAsync(new Uri("http://somehost/somefile.docx"),"C:\\somefolder\\somefile.docx");
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-07 15:08:25

谢谢大家的帮助,我真的很感激。

我意识到问题实际上是我没有正确连接url。对,我犯了个愚蠢的错误.

WebClient没有为不正确的格式抛出错误(不管出于什么原因),而且我的日志文件也没有记录我试图连接到的实际url,所以我没有意识到它在做错误的事情。

无论如何,谢谢大家的帮助和意见,帮助我找出问题是什么。

票数 0
EN

Stack Overflow用户

发布于 2013-10-07 14:51:34

DownloadFileAsync在后台下载文件,您的应用程序可能会在下载完成之前终止。

您应该等待DownloadFileCompleted事件,或者使用将等待文件下载的DownloadFile方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19227156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档