Vee*_*nki 3 c# windows-phone-7
我在Windows Phone应用程序中使用后台传输服务下载了一个大型zip文件.
当我尝试使用以下教程解压缩文件时:
private void LoadZipfile()
{
WebClient c = new WebClient();
c.OpenReadCompleted += new OpenReadCompletedEventHandler(openReadCompleted);
c.OpenReadAsync(new Uri("http://www.mydomain.com/myZipFile.zip"));
}
private void openReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
UnZipper unzip = new UnZipper(e.Result);
foreach (string filename in unzip.FileNamesInZip())
{
Stream stream = unzip.GetFileStream(filename);
StreamReader reader = new StreamReader(stream);
string contents = reader.ReadToEnd();
MessageBox.Show(contents);
}
}
Run Code Online (Sandbox Code Playgroud)
但是在解压缩时,它会抛出OutOfMemory异常.
请告诉我如何解决这个问题
我认为这里的问题是这两行
string contents = reader.ReadToEnd();
MessageBox.Show(contents);
Run Code Online (Sandbox Code Playgroud)
这两行尝试在字符串变量中读取整个文件并尝试显示它.这在手机上不是一个好习惯(即使在具有巨大内存和页面文件支持的桌面上也是如此).
尝试从流中读取几个字节并将其放入字符串并在消息框中显示.这应该可以解决您的问题.