日記帳だ! with Tux on Libserver

二度目の大改造!! 日記帳…か?を継承し、より柔軟でパワフルなBlogに変身しました。

RSSに対応しています。リンク・コメント・トラックバックは自由にしていただいてほぼ問題ありません。
RSS購読方法、僕のリンク・コメント・トラックバックについての考えを読むことをおすすめします。

JavaScriptを有効にし、Cookieを受け入れ、以下のブラウザを使うことで完全なコンテンツが楽しめます。
Mozilla Firefox 3.0(Get Firefox)・Opera 9.6・Safari 3.2・Lunascape 4/5(Gecko)・Lunascape 5(WebKit)
Internet Explorer 7/8とそれを使うIEコンポーネントブラウザ(Lunascape・Sleipnirなど)

<< 過去

未来 >>

日陰のas演算子は支えてくれた

まぁなんかいろいろありましたけど…
明日で旅行は終わり。今は帰り道の途中で、宿にいます。
昨日、いろいろやっていたのだが、HTTPからファイルをダウンロードしていろいろするプログラムがあったと。
インターネットつながってない、Apacheない、の状況で試験をしたかったが無理。
ソース書き換えるのめんどくさいなぁと思ったら、おもしろいヒントを得た。
file:///C:/work/foo.txt
のようなfileスキームで書いたURLを流し込めばどうなるか。
file:///C:/work/foo.txtはWindowsでのC:\work\foo.txt相当。
file:///とあると変な感じだが、これはfile://localhost/のようなものだと思うといい。
実際はlocalhostみたいなのは書かずに/が3つ連続したようなものになると。
当然UNIXのファイルシステムなら、file:///tmp/fooとかなるはず。
これを使ってみた。http://www.example.com/foo.txtとかなってたのをこれに変えてみた。
試してみたが、ほぼ思惑通り動いてくれた。
けどまったく変更なしでOKだったというわけではないんですよ。
HTTPのことについては「餅は餅屋と言うが、HTTPは.NET Framework?」の記事で取り上げてるね。
この記事でSystem.Net.HttpWebRequestにキャストすると便利だとか書いてあります。
実際これを使うといろいろできますので、実際使ったの。
けど、キャストできないこともあると。
なのでキャストできる場合とできない場合で処理を変えると。
      System.Net.WebRequest req0=System.Net.WebRequest.Create(url);
System.Net.HttpWebRequest req=req0 as System.Net.HttpWebRequest;
System.IO.Stream sr=null;
if (req!=null) {
req.UserAgent="foo/bar";
sr=req.GetRequestStream();
} else {
sr=req0.GetRequestStream();
}
ここでポイントなのはas演算子です。
as System.Net.HttpWebRequestというのは、System.Net.HttpWebRequest型に変換の意味。
けど普通の括弧を使ったキャスト演算子との違いは、
キャストできなかったときnullになるというのがあると。
失敗して例外をスローするとか複雑なので、こういう場合はas演算子を使うといいかなと。
まぁ詳しくはいろいろあるわけだけど。
これを使って場合わけしています。
FTPなども調整すれば使えそうです。
as演算子はマイナーですからね。
Author : hidemaro
Date : 2008/10/12(Sun) 23:58
Windows・Microsoft | Comment | trackback (0)
blog comments powered by Disqus

トラックバック

トラックバックURL取得

Tools