在单个文件中合并具有不同扩展名的多个文件

时间:2016-10-05 17:13:35

标签: c windows

我想创建一个函数,以便使用C语言将多个文件打包到一个文件中,并使用另一个函数反转操作。

int cbd_merge_files(const char** filenames, int n, const char* final_filename) {

  FILE* fp = fopen(final_filename, "wb");

  if (fp == NULL) return 1;

  char buffer[4097];

  for (int i = 0; i < n; ++i) {

    const char* fname = filenames[i];

    FILE* fp_read = fopen(fname, "rb");

    if (fp_read == NULL) return 1;

    int n;

    while ((n = fread(buffer, sizeof(char), 4096, fp_read))) {

        int k = fwrite(buffer, sizeof(char), n, fp);

        if (!k) return 1;
    }
    fclose(fp_read);

 }

 fclose(fp);

 return 0;
}

int main(int argc, const char** argv)
{
  cbd_merge_files(argv+1, argc-1, "output.txt");
  return 0;
}

我正在使用此代码以使其正常工作,但只能使用TXT文件,而不能使用不同的文件,例如:exe,jpg,zip,rar等...

是否有修复或其他功能来完成同样的工作?另一个approch /方法?

注意:我正在使用Visual Studio 2010

感谢的。

0 个答案:

没有答案