0

URL のリストから直接ファイルをダウンロードしようとしています。

.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 にアクセスし、ファイルが存在し、破損していないことを確認しました。URL は問題なく、ブラウザで URL から直接ファイルをダウンロードでき、ファイルが開きます。

追加情報:

私はpdfのURLとdocxのURLで異なることを1つ見つけましたが、私の問題とは何の関係もないと思います. ブラウザで pdf の URL にアクセスすると、ブラウザにpdfが表示されました。しかし、docx の URL に移動すると、ページには何も表示されませんが、ファイルのダウンロードが自動的に開始されます。これが違いを生むとは思いませんが、参考までに。

午前10時38分編集

Async メソッドを試してみました。docx ファイルをダウンロードして開くことはできましたが、空白の Word 文書として表示され、まだ正しくありません。ブラウザからダウンロードした同じ docx ファイルにはコンテンツがあります。

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

2 に答える 2