いや、本当は対応できる方法があるのかもしれませんが・・・。 .NETで書くコードのうち、サーバからファイルをダウンロードするには My.Computer.Network.DownloadFile System.Net.WebClient(インスタンスからDownloadFileあるいはDownloadFileAsyncメソッド) の2つのうち、どちらかを使うことが多いと思います。 My.Computer.Network.DownloadFileはインスタンスを作る必要もなく、ダウンロードの進捗ウィンドウを出すことが出来ます。 「あと○分」みたいな画面を自作するよりずっと簡単なので、つい使ってしまうんですよね。 私も業務で開発したプログラムの中に、このメソッドを仕込んでおりました。 一般的なプログラムにもある「今すぐ更新プログラムをダウンロードしてインストール」みたいな機能ですね。 さて、My.Computer~でダウンロードしているファイルの、ダウンロード元サーバを変更するという案件が発生しました。 とりあえずwebサーバ側のリダイレクトで対応しちゃえーということで.htaccessを書いてアップロード。 ブラウザからリダイレクトが効いているのを確認して、プログラムでもダウンロード・・・を試したのですが、落ちてきたのは1KB程度のファイル。戻り値は「正常終了」(というか正常じゃない場合Exceptionが発生する)。 あれーと思って見てみると、この1KBのファイルっていうのがhtml。 中を見ると「Moved Permanently」というタイトルがあり、「こっちのurlに変わったよ!」という内容が記載されていました。 ちなみに.htaccessの中身は↓こんな感じ。 RewriteEngine on RewriteBase / RewriteCond %{SERVER_PORT} 80 RewriteRule ^xxx.dat http://~/xxx.dat [R=301,L] ReweiteRuleがダメなのかなあ・・と思って Redirect xxx.dat http://~/xxx.dat と書いても現象は変わらず。 My.Computer.Network.DownloadFi
旅行記、プログラム開発関連メモ、猫、日常。 つまり雑記です。