9

簡単な問題で悩んでいます。このコードを使用して Web から画像をダウンロードしたい:

WebRequest requestPic = WebRequest.Create(@"http://something.com/" + id + ".jpg");
WebResponse responsePic = await requestPic.GetResponseAsync();

ここで、WebResponse のストリームを StorageFile に書き込みたいと思いました (たとえば、アプリのストレージにファイル id.jpg を作成します) が、それを実現する方法が見つかりませんでした。私はそれをウェブで検索しましたが、成功しませんでした-すべての方法で互換性のないストリームタイプなどがあります。

助けていただけますか?

4

3 に答える 3

7

応答ストリームをバッファに読み込んでから、データをStorageFileに書き込む必要があります。次のコードは例を示しています。

        var fStream = responsePic.GetResponseStream();
        var file = await ApplicationData.Current.LocalFolder.CreateFileAsync("testfile.txt");
        using (var ostream = await file.OpenStreamForWriteAsync())
        {
            int count = 0;
            do
            {
                var buffer = new byte[1024];
                count = fStream.Read(buffer, 0, 1024);
                await ostream.WriteAsync(buffer, 0, count);
            }
            while (fStream.CanRead && count > 0);
        }
于 2012-07-07T05:54:17.650 に答える