使用.net ZipArchive类检查zip存档是否包含一个空文件夹

本文关键字:包含一 是否 文件夹 ZipArchive net 检查 zip 使用 | 更新日期: 2023-09-27 18:09:05

是否有办法确定。net 4.5 ZipArchive是否包含一个指定名称的空文件夹?

据我所知,只有一组条目会忽略空文件夹

使用.net ZipArchive类检查zip存档是否包含一个空文件夹

我没有空文件夹被忽略的问题,下面的工作对我来说:

string zipPath = @"C:'test.zip";
using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
    /* Find all folders (elements ending with "/"), and exclude 
    * those containing elements (FullName starts with folder name, FullName is
    * longer than folder name) */
    var entries = archive.Entries.Where(o1 => o1.FullName.EndsWith("/")
        && !archive.Entries
        .Any(o2 => o2.FullName.StartsWith(o1.FullName) 
            && o2.FullName.Length > o1.FullName.Length)).ToList<ZipArchiveEntry>();
        }