C語言代碼合并神器for Mac

  • 程序功能
    • 將一個(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é)果如圖

![屏幕快照 2016-06-15 23.36.19.png](http://upload-images.jianshu.io/upload_images/2284089-03cd2c730d162c90.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第1章 第一個(gè)C程序第2章 C語言基礎(chǔ)第3章 變量和數(shù)據(jù)類型第4章 順序結(jié)構(gòu)程序設(shè)計(jì)第5章 條件結(jié)構(gòu)程序設(shè)計(jì)第6章...
    小獅子365閱讀 10,870評(píng)論 3 71
  • 數(shù)組在程序設(shè)計(jì)中,為了處理方便, 把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱...
    朱森閱讀 4,268評(píng)論 2 13
  • 1.創(chuàng)建文件夾 !/bin/sh mkdir -m 777 "%%1" 2.創(chuàng)建文件 !/bin/sh touch...
    BigJeffWang閱讀 10,490評(píng)論 3 53
  • 《無關(guān)風(fēng)月Ⅰ》第十三章 重振秦家 前情回顧: …… 餓著肚子坐在一堆紅棗桂圓花生蓮子旁等著丈夫的秦漣漪,就這樣被一...
    問天何其狂閱讀 1,939評(píng)論 0 0
  • 感覺到自己瀕臨失去耐心的點(diǎn),不要和這個(gè)讓自己失去耐心的事關(guān)聯(lián),凍結(jié)一下。過三分鐘冷靜下來再處理。 昨天的工作狀態(tài)極...
    蒙面小俠閱讀 288評(píng)論 0 0

友情鏈接更多精彩內(nèi)容