WebClientクラスを使ってURLが指すバイナリデータをダウンロードする場合などに使えます。
ウェブ上のデータの読み込みが完了するとOpenReadCompletedイベント
が発生しますのでイベントハンドラを追加して、OpenReadAsyncメソッド
で指定したリソースへのストリームを開きます。
// ファイルをバイナリとして保存する private void button4_Click(object sender, RoutedEventArgs e) { // ダウンロードを開始する var client = new WebClient(); client.OpenReadCompleted += client_OpenReadCompleted; client.OpenReadAsync( new Uri("http://cdn1.www.st-hatena.com/users/ch/ch3cooh393/profile.gif")); }
ウェブ上のリソースがダウンロード可能な状態になると、以下のイベントハンドラが呼び出されます。リソースを読み込みながら分離ストレージに書き込み処理をおこなっています。
// ウェブ上のリソースをダウンロード出来るようになると通知されるイベントハンドラ void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { // エラーチェック if (e.Error != null) { return; } // ダウンロードしたデータを分離ストレージに保存する using (var store = IsolatedStorageFile.GetUserStoreForApplication()) using (var strmWriter = store.CreateFile("icon991.png")) { var bytes = new byte[128]; int readed = 0; while (true) { // ダウンロードデータを読み込む readed = e.Result.Read(bytes, 0, bytes.Length); if (readed == 0) break; // 分離ストレージへ書き出し strmWriter.Write(bytes, 0, readed); } } }