我有一个ZIP存档,其目录结构如下所示。
根。 ZIP
级别1.文件夹
级别2.文件/文件夹
我目前正在做的是提取ZIP,将所有文件移动到正确的目录,删除现在空的文件夹,然后再次压缩文件夹。
我的问题是,有没有办法在不需要提取初始存档的情况下执行此操作?
答案 0 :(得分:0)
您可以将Zip文件加载到内存中,而无需在磁盘上提取它们。
$ZipFile = "C:\zipfolder\test.zip"
Add-Type -AssemblyName System.IO
Add-Type -AssemblyName System.IO.Compression
$FileStream = [System.IO.File]::OpenRead($ZipFile)
$ArchiveInMemory = [System.IO.Compression.ZipArchive]::new($file)
Add-types将加载所需的类。
OpenRead会将文件加载到内存中。
ZipArchive会将内存中的文件解释为zip存档