1

DownloadDataAsync メソッドを使用できません。存在する唯一のオプションは DownloadStringAsync メソッドです。このメソッドを使用して zip ファイルをダウンロードするにはどうすればよいですか。(Windows Phone 8 アプリ開発は初めてです)

4

3 に答える 3

0

私のために働いた解決策を共有することを考えただけです。指定された URL への Web 要求を作成し、gzip ファイルを分離ストレージ ファイルにダウンロードしました。ダウンロード後、宛先ファイル ストリームを作成し、GZipStream の WriteByte メソッドを使用して圧縮された gzip ストリーム ファイルをソース ファイルから宛先ファイルに保存しました。圧縮されていないファイル。

注: -GZipStream は、NuGet マネージャーから Visual Studio に追加できます。

これは、GZipファイルをダウンロードして抽出するために使用したコードスニペットです。

public async Task DownloadZipFile(Uri fileAdress, string fileName) { try {

            WebRequest request = WebRequest.Create(fileAdress);
            if (request != null)
            {
                WebResponse webResponse = await request.GetResponseAsync();
                if (webResponse.ContentLength != 0)
                {
                    using (Stream response = webResponse.GetResponseStream())
                    {
                        if (response.Length != 0)
                        {
                            using (IsolatedStorageFile isolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
                            {
                                if (isolatedStorage.FileExists(fileName))
                                    isolatedStorage.DeleteFile(fileName);
                                using (IsolatedStorageFileStream file = isolatedStorage.CreateFile(fileName))
                                {
                                    const int BUFFER_SIZE = 100 * 1024;
                                    byte[] buf = new byte[BUFFER_SIZE];
                                    int bytesread;
                                    while ((bytesread = await response.ReadAsync(buf, 0, BUFFER_SIZE)) > 0)
                                    {
                                        file.Write(buf, 0, bytesread);
                                    }
                                    file.Close();

                                    FileStream sourceFileStream = File.OpenRead(file.Name);
                                    FileStream destFileStream = File.Create(AppResources.OpenZipFileName);

                                    GZipStream decompressingStream = new GZipStream(sourceFileStream, CompressionMode.Decompress);
                                    int byteRead;
                                    while ((byteRead = decompressingStream.ReadByte()) != -1)
                                    {
                                        destFileStream.WriteByte((byte)byteRead);
                                    }
                                    decompressingStream.Close();
                                    sourceFileStream.Close();
                                    destFileStream.Close();
                                    PhoneApplicationService.Current.State["DestinationFilePath"] = destFileStream.Name;
                                }
                            }
                            FileDownload = true;
                        }
                    }
                }
            }

            if (FileDownload == true)
            {
                return DownloadStatus.Ok;
            }
            else
            {
                return DownloadStatus.Other;
            }
        }

        catch (Exception exc)
        {
            return DownloadStatus.Other;
        }

    }
于 2014-04-21T05:11:30.920 に答える
-1

URL から zip ファイルをダウンロードするには、最初に zip ファイルを分離ストレージに保存し、その後、それを抽出して要件に従ってファイルを読み取る必要があります。

http://axilis.hr/uznip-archives-windows-phone

于 2013-05-20T10:03:39.813 に答える