ファイルに直接リンクしていない URL ( http://website.com/DocMgm/DocMgmServlet?docNum=pce-0011&attachmentType=Archiveなど) から zip ファイルを保存しようとしています。ブラウザでリンクを使用すると、ファイルのダウンロード オプションが表示されますが、プログラムで動作させることができないようです。
いずれかの方法を実行しようとすると、作成された zip ファイルで次のエラーが発生します。
ファイル 'C:\temp\PCE-0011.zip' をアーカイブとして開けません
URLは偽物です。それとサーバー上のファイルとの正確な関係はわかりませんが、ファイルの最新バージョンへのリダイレクトとして機能すると思います(ドキュメント管理システムを介しています)。
私が試した2つの一般的な方法は次のとおりです。
string ZipURL = "http://website.com/DocMgm/DocMgmServlet?docNum=pce-0011&attachmentType=Archive";
string SaveURL = "c:\\temp\\PCE-0011.zip";
WebClient webClient = new WebClient();
webClient.DownloadFile(ZipURL, @SaveURL);
と:
string url = "http://website.com/DocMgm/DocMgmServlet?docNum=pce-0011&attachmentType=Archive";
WebRequest objRequest = System.Net.HttpWebRequest.Create(url);
WebResponse objResponse = objRequest.GetResponse();
byte[] buffer = new byte[32768];
using (Stream input = objResponse.GetResponseStream())
{
using (FileStream output = new FileStream("C:\\temp\\PCE-0011.zip",
FileMode.CreateNew))
{
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, bytesRead);
}
}
}