Почему количество записей IO.Compression.ZipFile не соответствует 7zip GUI? - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь проверить содержимое ZIP-архива в PowerShell, посчитав количество заархивированных записей, таких как этот ответ.

Однако результаты несовместимы между 7Zip GUI,gci, Entries.Count и 7Zip CLI, например:

(Get-ChildItem -path $sourceFolder -Recurse | where { ! $_.PSIsContainer }).Count

= 77779 файлов

[IO.Compression.ZipFile]::OpenRead($zipFile).Entries.Count

= 77838 записей

&'c:\Program Files\7-Zip\7z.exe' l $zipFile

= 77779 файлов, 59папки (т.е. 77838 объектов)

Однако количество папок 59 неверно - графический интерфейс 7Zip показывает 77779 файлов и 35726 папок.

Есть ли способ исключить папки из .Entries?В противном случае я мог бы проанализировать результаты команды 7z.exe l, например this , но предпочел бы нативный подход

1 Ответ

0 голосов
/ 07 декабря 2018

Вы можете выполнить пользовательский подсчет ... Если в записи указана только папка, пропустите ее:

($zip.entries.where({!$_.FullName.EndsWith('/')})).count
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...