How to tell if a "ZipArchiveEntry" is directory?

.net, system.io.compression, zip

Solution

Seems like I really do tend to answer my own questions.

Anyway, the answer is straight forward:

If `ZipArchiveEntry` is a directory it will have its `FullName` property ending with "/" (e.g. "some_dir/") and its `Name` property will be empty string ("").

If only someone cared to put that info in the documentation ...

Oh, and there is a catch: If a directory contains files, there does not have to be a separate `ZipArchiveEntry` for it. So, if you are looking for a specific directory you cannot just look for one `ZipArchiveEntry` with empty `Name` or with "/" at the end of `FullName` - you have to parse the whole tree (`FullName` for each `ZipArchiveEntry`).

Luckily I had only to check if there is a single common directory for all entries (`FullName` properties of all `ZipArchiveEntry` items shoud start with the same string in the form of "folder_name/").

Problem

I am handling some 3rd party ZIP files with .Net 4.5.2 System.IO.Compression.ZipArchive class and all works nicely. However, I need to tell apart file entries from directory entries, preferably without extracting them first. Is there a way to tell if a ZipArchive entry is a directory without extracting it? As far as could find out there is no property of ZipArchiveEntry that tells if it is a file or directory.

Original source