使用C++中的 tar 创建压缩存档

Creating compressed archives with tar from C++

本文关键字:压缩 创建 tar C++ 中的 使用      更新时间:2023-10-16
if(cmd == "zip")
        {
            string z = "tar cvf " + destination + "  " + file;
            system(z.c_str());
        }

我想压缩一个文件。 到给定的目的地。但是在我的情况下发生的事情是它制作了目标的压缩文件。就像我在 Linux 中使用它一样,在 Destination 中我给出"桌面",在文件中我给出文件名。所以它只使桌面压缩文件,桌面上没有扩展名。

你可以做:

string z = "tar cvzf " + destination + "/" + file + ".tar.gz  " + file;

(变量,如果不可信,应该被清理,记住system()调用 POSIX shell(

如果没有"z",tar 会创建一个.tar文件,但您必须自己指定文件名和扩展名 - 这不是自动的。

使用"z",它会创建一个.tar.gz文件(与zip文件不同 - 普通tar不执行zip文件(。

还有其他选择。详见tar(1(。


顺便说一句,对system函数的调用在技术上不是系统调用。