gpt4 book ai didi

c++ - 在 C++ 中通过 system() 使用 7-zip

转载 作者:行者123 更新时间:2023-11-30 00:42:01 26 4
gpt4 key购买 nike

我正在尝试使用 7-Zip 在 Windows XP 机器上通过 C++ 中的 system() 函数压缩文件。我试过:

(格式化为 system() 将收到的内容)

"C:\Program Files\7-Zip\7z.exe"a -tzip "bleh.zip""addedFile.txt"

吐出错误

'C:\Program' 未被识别为内部或外部命令,
可运行的程序或批处理文件。

我已经尝试了几种类似的替代方案,但尚未找到解决方案。

我想尝试直接从安装目录运行它,这样只要用户安装了 7-Zip,它就可以正常运行。这是用于内部公用事业应用程序。

编辑:根据要求,这些是实际的代码行:

std::string systemString = "\"C:\\Program Files\\7-Zip\\7z.exe\" a -tzip \"" + outDir + projectName + ".zip" + "\" \"";
//...
std::string finalSystemString = systemString + *i + "\"";
system( finalSystemString.c_str() );

*i 是要添加的特定文件的迭代器。

最佳答案

看起来好像有什么东西去掉了第一个参数周围的引号。您可以尝试使用额外的引号来尝试修复此问题,或者您可以使用 Win32 API 获取 7z.exe 的 MS-DOS 兼容短路径名 GetShortPathName

短路径中没有空格,类似于“C:\PROGRA~1\7-ZIP\7Z.EXE”

关于c++ - 在 C++ 中通过 system() 使用 7-zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2227038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com