DownloadDataAsync メソッドを使用できません。存在する唯一のオプションは DownloadStringAsync メソッドです。このメソッドを使用して zip ファイルをダウンロードするにはどうすればよいですか。(Windows Phone 8 アプリ開発は初めてです)
質問する
3920 次
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
DownloadStringAsync メソッドを使用する必要がありますか? それ以外の場合は、次を確認できます。
HttpWebResponse から受け取った圧縮ファイルを抽出するには?
于 2013-03-01T15:37:38.933 に答える
-1
URL から zip ファイルをダウンロードするには、最初に zip ファイルを分離ストレージに保存し、その後、それを抽出して要件に従ってファイルを読み取る必要があります。
于 2013-05-20T10:03:39.813 に答える