我必須列出一個zip文件(FileName,lenght,創建日期,修改等)內的所有可用信息。一些我必須分析的zip文件帶有文件夾和zip文件以及其他文件類型。我如何閱讀更多的信息ZipEntry(s)內使用sharpZipLibrary ZipEntry?
我想知道如何閱讀這些文件夾和內容的zip文件的內部,也ZIP文件的zip條目,而無需解壓整個事情(如果它甚至有可能)
如:
Collection.zip FILE1.TXT FILE2.TXT 報告/ REPORT1.TXT REPORT2.TXT first-backup.zip second-backup.zip
以敏銳的拉鍊庫我能夠做讀取文件的第一層:
foreach (Zip_Library.Zip.ZipEntry entry in new Zip_Library.Zip.ZipFile(fi.FullName))
{
printObjectProps(entry);
}
而且printObjectProps看起來有點像這樣:
private static void printObjectProps(Object obj)
{
Console.WriteLine("--------------------------------------------");
Console.WriteLine("ObjectType:" + obj.GetType().ToString());
Console.WriteLine("--------------------------------------------");
foreach (PropertyInfo propInfo in obj.GetType().GetProperties())
{
Console.WriteLine("PropertyName:" + propInfo.Name);
Console.WriteLine("PropertyType:" + propInfo.PropertyType);
Console.WriteLine("PropertyValue:" + propInfo.GetValue(obj, null));
Console.WriteLine();
}
Console.WriteLine("--------------------------------------------");
}
之前,我自己,我應該考慮任何想法陷入更多麻煩?
但是,如果壓縮文件A包含壓縮文件B,那麼在不從A中提取B的內容的情況下無法閱讀,是嗎? – phoog
@phoog。 AFAIK,這將是正確的。但是,如果我沒有記錯的話,DotNetZip允許您將文件提取到MemoryStream。此外,當存儲在zip存檔中時,已壓縮的文件不會再次被壓縮:這會導致文件大小擴大。該算法檢測壓縮文件並將其存儲,而不進行[進一步]壓縮。 –
感謝您的洞察力。希望其他人可以確認'zip B'將在解壓縮後被讀取或放入內存中,以便我們可以檢查其中的文件。 – mimoralea