- 程序功能
- 將一個(gè)文件夾下包括所有子文件夾中的所有指定類型文件內(nèi)容合并到一個(gè)文件中。
- 操作方法
- 用Xcode編譯成功后將生成的可執(zhí)行文件拖到桌面再雙擊打開,這樣做可以直接將文件夾路徑拖入,方便省事。
- 完整代碼如下
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
/**要執(zhí)行的find命令*/
char command[5000];
/**需要合并代碼的文件夾路徑*/
char folderPath[5000];
/**文件后綴名*/
char suffix[20];
/**存放所有搜索到的文件路徑的臨時(shí)文件,在這個(gè)文件中每個(gè)路徑單獨(dú)占一行,最后這個(gè)文件會(huì)被刪除*/
char tempFile[5000];
/**臨時(shí)文件的指針*/
FILE *fTempFile;
/**單個(gè)文件路徑*/
char singleFile[5000];
/**單個(gè)文件的指針*/
FILE *fSingleFile;
/**存放單個(gè)文件中的所有內(nèi)容*/
char singleFileContent[1000000];
/**合并后的文件*/
char mergedFile[5000];
/**合并文件的指針*/
FILE *fMergedFile;
/**文件的數(shù)量*/
int fileNum;
char ch;
int i;
while(1)
{
printf("請(qǐng)拖入文件夾路徑:");
scanf("%s",folderPath);
printf("請(qǐng)輸入要合并文件的后綴(如.c,.txt):");
scanf("%s",suffix);
//生成不完整的find命令
strcpy(command,"find ");
strcat(command,folderPath);
strcat(command," -name *");
strcat(command,suffix);
strcat(command,">>");
//生成臨時(shí)文件的全路徑
strcpy(tempFile,folderPath);
strcat(tempFile,"/temp.txt");
//生成完整的find命令
strcat(command,tempFile);
//執(zhí)行Unix下的find命令,將搜索到的內(nèi)容輸出到temp.txt文件中
system(command);
//生成合并的文件全路徑
strcpy(mergedFile,folderPath);
strcat(mergedFile,"/mergedFile.txt");
fTempFile=fopen(tempFile,"r");
fMergedFile=fopen(mergedFile,"w");
fileNum=0;
while(1)
{
i=-1;
//每次得到一個(gè)文件的全路徑
while((singleFile[++i]=fgetc(fTempFile))!=10&&singleFile[i]!=EOF);
if(singleFile[i]==EOF)
{
break;
}
singleFile[i]=0;//文件內(nèi)容結(jié)尾標(biāo)志
fSingleFile=fopen(singleFile,"r");//打開文件
i=0;
while((ch=fgetc(fSingleFile))!=EOF)
{
singleFileContent[i++]=ch;
}
singleFileContent[i]=0;
fileNum++;
printf("\n%d:%s\n\n",fileNum,singleFile);
fprintf(fMergedFile,"%d:%s\n",fileNum,singleFile);
fprintf(fMergedFile,"%s\n\n",singleFileContent);
fclose(fSingleFile);
}
fclose(fTempFile);
fclose(fMergedFile);
//生成刪除臨時(shí)文件的命令
strcpy(singleFile,"rm ");
strcat(singleFile,tempFile);
system(singleFile);//刪除臨時(shí)文件
if(fileNum==0) printf("\n查詢無結(jié)果!\n\n");
else printf("\n%d個(gè)文件已合并輸出到%s下!\n\n",fileNum,mergedFile);
}
return 0;
}```
- 結(jié)果如圖

最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。