簡體   English   中英

如何將.zip文件視為C#中的目錄?

[英]How to treat .zip files as directories in C#?

我希望能夠像讀取物理文件夾中的文件一樣讀取zip文件中的文件。 如何在不提取文件的情況下執行此操作?

我最近開通了我的Platform.VirtualFileSystem C#庫。

https://github.com/platformdotnet/Platform.VirtualFileSystem https://github.com/platformdotnet/Platform.VirtualFileSystem/wiki

您可以像這樣讀取zip文件:

var directory = FileSystemManager.Default.ResolveDirectory("zip://[file:///c:/test.zip]/");
directory.GetFiles().ForEach(Console.WriteLine);

它可以從NuGet獲得: http//nuget.org/packages/Platform.VirtualFileSystem.Providers.Zip/

有一些組件允許您從.NET應用程序中查看.zip文件的內容:

我之前使用過#ziplib,但它的工作原理並不是很廣泛。

首先.NET雖然它支持壓縮文件,但它不支持ZIP文件(不確定.NET v4)

無論如何我使用SharpZipLib http://www.icsharpcode.net/OpenSource/SharpZipLib/(GPL +例外仔細閱讀)

這個庫允許您瀏覽ZipStream並訪問ZipEntry,它可以為您提供所有文件信息。

請記住,壓縮所需的文件時,如果壓縮文件夾,則第一個條目將是該文件夾。 沒問題,但如果您希望有一個清晰的列表,請將其壓縮而不使用文件夾路徑。

還支持passworded拉鏈。

您需要編寫或查找將自身表示為虛擬文件系統的包裝器。

api可以像單個public Stream GetFile(string path)方法一樣簡單,也可以像完整FS一樣復雜。

這可以使用任何支持您要使用的文件格式的壓縮庫。

我用Cheeso的 DotNetZip庫編寫了一個簡單的壓縮VFS,它運行得很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM