Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 使用隔离存储WP7解压C#中的文件_C# 4.0 - Fatal编程技术网

C# 4.0 使用隔离存储WP7解压C#中的文件

C# 4.0 使用隔离存储WP7解压C#中的文件,c#-4.0,C# 4.0,我是WP7平台的新手,我正在做一些和独立存储有关的事情,现在有点卡住了,这很简单,但对我来说不是。我的应用程序需要下载一个zip文件并保存到处理中,我已经完成了下载部分,我可以将其保存到一个独立的存储中,我使用独立的存储资源管理器检查状态,文件就在那里 void wcMedia_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { filename1 = "book" + bookId + ".zip";

我是WP7平台的新手,我正在做一些和独立存储有关的事情,现在有点卡住了,这很简单,但对我来说不是。我的应用程序需要下载一个zip文件并保存到处理中,我已经完成了下载部分,我可以将其保存到一个独立的存储中,我使用独立的存储资源管理器检查状态,文件就在那里

void wcMedia_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{

    filename1 = "book" + bookId + ".zip";
    if (e.Error != null) return;
    var str = e.Result;

    using (var myStore = IsolatedStorageFile.GetUserStoreForApplication())
    {
        if (myStore.FileExists(filename1)) myStore.DeleteFile(filename1);
        var buffer = new byte[1024];
        using (var isoStorStr = myStore.OpenFile(filename1, FileMode.CreateNew))
        {
            int bytesRead = 0;
            while ((bytesRead = str.Read(buffer, 0, 1024)) > 0)
                isoStorStr.Write(buffer, 0, bytesRead);
        }
    }


    Debug.WriteLine("done");
}

我的问题是如何提取zip文件,我的zip包含3个文件夹和一些mp3和图像文件。我尝试过第三方库,如:SharpZipLib、dotnetzip,但没有成功。有人能帮帮我吗。非常感谢。

不要认为这是你的错。看起来它源于使用较旧版本的.Net编译的DotNetZip

请看这里:


一条评论列出了一个补丁,可能会在4.0版本中修复它。如果您改为更改库并遇到错误,请将其发布,我将帮助您使其正常工作。

上述代码正常工作,问题在其他地方?如果你能缩小一个库的范围,我们可以帮助你更好。谢谢你的回复,我尝试了dotnetzip打开它,代码如下:private void MyExtract(){string ziptunpack=“C1P3SML.zip”string unpackDirectory=“Extracted Files”;使用(ZipFile zip1=ZipFile.Read(ziptunpack)){//这里,我们提取每个条目,但是我们可以根据条目名称、大小、日期、复选框状态等有条件地提取。//foreach(zip1中的ZipEntry e){e.extract(unpacktirectory,ExtractExistingFileAction.OverwriteSilently);}}}根据DotNetZip文档,该代码看起来很准确。因此,下一步将是确定发生了什么错误。您是否收到了错误?它是否正常工作但不符合预期?默认方法给了我一个错误,如下所示:'IBM437'不是受支持的编码名称。我尝试了一些解决方案,但没有成功。您能给我指出一些解决方案吗注意:非常感谢。不要认为这是你的错。看起来这是由使用较旧版本的.Net编译的DotNetZip引起的。请参阅此处:。一条注释列出了一个可能修复4.0版本的修补程序。