我试图将zip文件解压缩到我的C ++程序中的文件夹中。我不想使用任何外部库或依赖项。
为此,我从我的C ++程序发出CMD命令来执行powershell。所以,我执行一个系统命令,它激活了poweshell,它提取了zip文件。
这是我的代码:
string extractCommand = "powershell.exe -nologo -noprofile -command \"& { Add - Type - A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('\"C:/Users/Eyesight Technology/Desktop/data/somsearch.zip/\"', '\"C:/Users/Eyesight Technology/Desktop\"'); }\"";
system(extractCommand.c_str());
我认为问题可能在于使用引号和转义符,但我不确定。我试过直接从命令行运行命令(显然没有转义键),它就像一个魅力!但是在带有转义键的C ++中,我从powershell中得到了错误。
非常感谢任何帮助!
答案 0 :(得分:0)
在PowerShell 5中,使用Expand-Archive
。
Expand-Archive -Path 'C:/Users/Eyesight Technology/Desktop/data/somsearch.zip' `
-DestinationPath 'C:/Users/Eyesight Technology/Desktop'