除了在C#中提取Zip文件

编程入门 行业动态 更新时间:2024-10-27 20:23:59
本文介绍了除了在C#中提取Zip文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我在提取码工作,解压缩zip文件,在WinRT中使用C#

I am working on Extraction Code to Extract Zip file, Using C# in winrt.

我收到来自本地驱动器这里文件:

I am getting File from Local Drive here:

StorageFile file = await KnownFolders.PicturesLibrary.GetFileAsync("dostoyevsky-poor-folk.zip"); Stream zipMemoryStream = await file.OpenStreamForReadAsync(); var folder = ApplicationData.Current.LocalFolder; // Create zip archive to access compressed files in memory stream using (ZipArchive zipArchive = new ZipArchive(zipMemoryStream, ZipArchiveMode.Read)) { // For each compressed file... foreach (ZipArchiveEntry entry in zipArchive.Entries) { if (entry.Name == "") { // Folder await CreateRecursiveFolder(folder, entry); } else { // File await ExtractFile(folder, entry); } } }

我提取对于文件夹位置

I am Extracting For folder here:

private async Task CreateRecursiveFolder(StorageFolder folder, ZipArchiveEntry entry) { var steps = entry.FullName.Split('/').ToList(); steps.RemoveAt(steps.Count() - 1); foreach (var i in steps) { await folder.CreateFolderAsync(i, CreationCollisionOption.OpenIfExists); folder = await folder.GetFolderAsync(i); } }

我提取对于文件位置:

I am Extracting For File Here:

private async Task ExtractFile(StorageFolder folder, ZipArchiveEntry entry) { var steps = entry.FullName.Split('/').ToList(); steps.RemoveAt(steps.Count() - 1); foreach (var i in steps) { folder = await folder.GetFolderAsync(i); } using (Stream fileData = entry.Open()) { StorageFile outputFile = await folder.CreateFileAsync(entry.Name, CreationCollisionOption.ReplaceExisting); using (Stream outputFileStream = await outputFile.OpenStreamForWriteAsync()) { await fileData.CopyToAsync(outputFileStream); await outputFileStream.FlushAsync(); } } }

当我尝试使用此我得到这个异常:System.NullReferenceException。 除外越来越线是等待outputFileStream.FlushAsync()的最后一行;

When I try to use this I get this exception: 'System.NullReferenceException' . The Exception getting line is the Last line of await outputFileStream.FlushAsync();

有些时候,我得到相同的异常,当我尝试从本地驱动器挑文件。 之前获得异常等待outputFileStream.FlushAsync()这样看。

Some times I am getting same exception when I try to pick file from Local Drive. Before Getting Exception the Debugger value of await outputFileStream.FlushAsync() looking like this.

您可以帮我出这一点。

感谢

推荐答案

最后,这是为我工作。为什么?因为我得到空值,而因为我要去的地方解压缩文件包的提取。 我相信这是提取使用的C#Windows Store应用程序的Zip文件的完美解决方案。 谢谢

Finally, It is Worked for me. Why because I am getting Null value while extraction Because of the package where I am going to extract files. I am sure this is the perfect solution to Extract Zip file for windows store apps using c#. Thanks

更多推荐

除了在C#中提取Zip文件

本文发布于:2023-11-06 13:15:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1563789.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   Zip

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!