代码之家  ›  专栏  ›  技术社区  ›  synaptik

使用C语言复制和归档/压缩文本文件++

  •  0
  • synaptik  · 技术社区  · 10 年前

    我的任务很简单。每当我运行C++程序时

    $ ./myprogram
    

    我想在CWD中搜索所有源(*.cpp)文件,然后在目录中复制它们 ./output ,然后创建某种压缩的存档文件。我不在乎什么类型的压缩或归档格式,只在乎将它们放在一个文件中。

    目前,我正在使用以下功能:

    int archiveFiles(string destinationFile) {
        int ret;    
        ret = system( ("tar -cf " + destinationFile + " ./*.cpp").c_str() );
        ret = system( ("gzip " + destinationFile).c_str() );
        return ret;
    }
    

    在通话中 archiveFiles("output");

    但我更愿意 使用系统调用。我宁愿在 myprogram 它本身如果可能的话,我也不愿意使用特殊的库。

    无论如何,只使用标准库元素就可以了?

    2 回复  |  直到 10 年前
        1
  •  2
  •   jotik    10 年前

    没有C++标准库元素可以执行此操作。您必须使用特殊的库、使用外部应用程序或开发自己的文本压缩程序。

    我想最接近使用“标准”库的是使用Boost库。我刚刚发现 this question 并认为Boost可能支持gzip。

        2
  •  0
  •   Mark Adler    10 年前

    使用 libtar ,一个tar文件操纵器。