WebClient.DownloadFile File Corrupt

本文关键字:Corrupt File DownloadFile WebClient | 更新日期: 2023-09-27 18:34:26

我正在尝试直接从网址列表中下载文件。

我能够成功下载除.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 url 时,pdf 显示在浏览器中。但是,当我转到docx url时,该页面没有显示任何内容,但是文件下载会自动开始。我不认为这会有所作为,但仅供参考。

编辑上午10:38

我刚刚尝试了异步方法。我能够下载docx文件并打开它,但它显示为空白的word文档,这仍然不正确。我从浏览器下载的同一个docx文件确实有内容。

webClient.DownloadFileAsync(new Uri("http://somehost/somefile.docx"),"C:''somefolder''somefile.docx");

WebClient.DownloadFile File Corrupt

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

应等待 DownloadFileDone 事件,或使用 DownloadFile 方法,该方法将等待文件被下载。

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

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

WebClient 没有因格式不正确(无论出于何种原因(而抛出错误,并且我的日志文件没有记录我尝试连接到的实际 URL,所以我没有意识到它正在做错误的事情。

无论如何,谢谢大家的帮助和评论,帮助我弄清楚问题是什么。