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");