Mac下用C语言实现代码合并功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac下用C语言实现代码合并功能相关的知识,希望对你有一定的参考价值。

  • 程序功能:

        将一个文件夹下包括所有子文件夹中的所有指定类型文件内容合并到一个文件中.

  • 操作方法:

    用Xcode编译成功后将生成的可执行文件拖到桌面再双击打开,这样做可以直接将文件夹路径拖入,方便省事.

完整代码如下:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 int main()
 5 {
 6     /**要执行的find命令*/
 7     char command[5000];
 8     /**需要合并代码的文件夹路径*/
 9     char folderPath[5000];
10     /**文件后缀名*/
11     char suffix[20];
12     /**存放所有搜索到的文件路径的临时文件,在这个文件中每个路径单独占一行,最后这个文件会被删除*/
13     char tempFile[5000];
14     /**临时文件的指针*/
15     FILE *fTempFile;
16     /**单个文件路径*/
17     char singleFile[5000];
18     /**单个文件的指针*/
19     FILE *fSingleFile;
20     /**存放单个文件中的所有内容*/
21     char singleFileContent[1000000];
22     /**合并后的文件*/
23     char mergedFile[5000];
24     /**合并文件的指针*/
25     FILE *fMergedFile;
26     /**文件的数量*/
27     int fileNum;
28     char ch;
29     int i;
30     while(1)
31     {
32         printf("请拖入文件夹路径:");
33         scanf("%s",folderPath);
34         printf("请输入要合并文件的后缀(如.c,.txt):");
35         scanf("%s",suffix);
36         //生成不完整的find命令
37         strcpy(command,"find ");
38         strcat(command,folderPath);
39         strcat(command," -name *");
40         strcat(command,suffix);
41         strcat(command,">>");
42         //生成临时文件的全路径
43         strcpy(tempFile,folderPath);
44         strcat(tempFile,"/temp.txt");
45         //生成完整的find命令
46         strcat(command,tempFile);
47         //执行Unix下的find命令,将搜索到的内容输出到temp.txt文件中
48         system(command);
49         //生成合并的文件全路径
50         strcpy(mergedFile,folderPath);
51         strcat(mergedFile,"/mergedFile.txt");
52         fTempFile=fopen(tempFile,"r");
53         fMergedFile=fopen(mergedFile,"w");
54         fileNum=0;
55         while(1)
56         {
57             i=-1;
58             //每次得到一个文件的全路径
59             while((singleFile[++i]=fgetc(fTempFile))!=10&&singleFile[i]!=EOF);
60             
61             if(singleFile[i]==EOF)
62             {
63                 break;
64             }
65             singleFile[i]=0;//文件内容结尾标志
66             fSingleFile=fopen(singleFile,"r");//打开文件
67             i=0;
68             while((ch=fgetc(fSingleFile))!=EOF)
69             {
70                 singleFileContent[i++]=ch;
71             }
72             singleFileContent[i]=0;
73             fileNum++;
74             printf("\\n%d:%s\\n\\n",fileNum,singleFile);
75             fprintf(fMergedFile,"%d:%s\\n",fileNum,singleFile);
76             fprintf(fMergedFile,"%s\\n\\n",singleFileContent);
77             fclose(fSingleFile);
78         }
79         fclose(fTempFile);
80         fclose(fMergedFile);
81         //生成删除临时文件的命令
82         strcpy(singleFile,"rm ");
83         strcat(singleFile,tempFile);
84         system(singleFile);//删除临时文件
85         if(fileNum==0) printf("\\n查询无结果!\\n\\n");
86         else printf("\\n%d个文件已合并输出到%s下!\\n\\n",fileNum,mergedFile);
87         
88     }
89     return 0;
90 }
  • 结果:

技术分享

 

以上是关于Mac下用C语言实现代码合并功能的主要内容,如果未能解决你的问题,请参考以下文章

linux下用简单c语言代码怎么实现实现文件夹所有内容的复制

Python代码阅读(第19篇):合并多个字典

在Linux下用C语言编写程序,急求完整代码

SnippetsLab for Mac 1.9 中文共享版 – 强大的代码收藏管理工具

linux下用c语言写出复制黏贴文件

C语言代码片段