【发布时间】:2020-04-21 13:22:35
【问题描述】:
我有一个这样结构的 zip 文件:test.zip -> Mark -> Today-> *.* ( every files)
当我提取它时,我得到这个:test (folder) -> Mark (folder) -> Today ->*.* ( every files)
我怎样才能得到这个结构:Today (folder) ->*.* (every files)
我的意思是,我试图避免创建前两个文件夹。
最好的办法是只提取没有文件夹的文件
function Unzip
{
param([string]$zipfile, [string]$out)
[System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $out)
}
unzip Test.zip $testPath
编辑: 对不起,我在这个问题上犯了一个错误。 正确的问题是:如何仅提取文件或最后一个文件夹(今天)。我想知道我是否需要一个临时文件夹,或者是否有一个选项,但阅读文档似乎不需要
【问题讨论】:
-
您忘记发布用于扩展存档的代码。
-
是的,你的代码中一定有一些东西,因为
[System.IO.Compression.ZipFile]::ExtractToDirectory方法在你指定的目录中提取,这意味着如果你指定 Mark 文件夹,它将在那里提取文件,而不是在任意测试文件夹中.这个方法确实保持文件结构完整,所以如果你也想摆脱 Mark,那么 ZipArchive 类中的其他东西可能有用,但不是 ExtractToDirectory(对 ZipArchive 的引用:docs.microsoft.com/en-us/dotnet/api/…) -
我需要一些时间来调查。请不要关闭帖子。谢谢
-
您不使用标准 Powershell cmdlet Expand-Archive 是否有特殊原因? ...无需重新发明轮子。 ;-)
-
我不知道 :) 我试过了。它有一个漂亮的文本图形,但我不知道如何只能提取最后一个文件夹或唯一的文件。没有选项,可能是我必须搜索方法
标签: powershell directory unzip