为什么 IO.Compression.ZipFile 个条目与 7zip GUI 不匹配?
Why does IO.Compression.ZipFile count of Entries not match 7zip GUI?
我正在尝试通过计算 this 答案等压缩条目的数量来验证 PowerShell 中 ZIP 存档的内容。
但是,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-Zipz.exe' l $zipFile
= 77779 个文件,59 个文件夹(即 77838 个对象)
但是 59 个文件夹的计数是错误的 - 7Zip GUI 显示 77779 个文件和 35726 个文件夹。
有没有办法从 .Entries 中排除文件夹?否则我可以解析 7z.exe l 命令的结果,如 this,但更喜欢本机方法
您可以进行自定义计数...如果该条目仅指定一个文件夹,请跳过它:
($zip.entries.where({!$_.FullName.EndsWith('/')})).count
我正在尝试通过计算 this 答案等压缩条目的数量来验证 PowerShell 中 ZIP 存档的内容。
但是,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-Zipz.exe' l $zipFile
= 77779 个文件,59 个文件夹(即 77838 个对象)
但是 59 个文件夹的计数是错误的 - 7Zip GUI 显示 77779 个文件和 35726 个文件夹。
有没有办法从 .Entries 中排除文件夹?否则我可以解析 7z.exe l 命令的结果,如 this,但更喜欢本机方法
您可以进行自定义计数...如果该条目仅指定一个文件夹,请跳过它:
($zip.entries.where({!$_.FullName.EndsWith('/')})).count