C++ 合併資料夾下所有的txt檔案
阿新 • • 發佈:2019-02-17
下面的程式合併F:\新建資料夾\all資料夾下的所有檔案
合併順序按檔名稱排序
輸出到merge.txt檔案中
#include <io.h> #include <bits/stdc++.h> using namespace std; void getFiles( string path, vector<string>& files ){ //檔案控制代碼 long hFile = 0; //檔案資訊 struct _finddata_t fileinfo; string p; if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1){ do{ //如果是目錄,迭代之 //如果不是,加入列表 if((fileinfo.attrib & _A_SUBDIR)){ if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) getFiles( p.assign(path).append("\\").append(fileinfo.name), files ); }else{ files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } } int main(){ char * filePath = "F:\\新建資料夾\\all"; vector<string> files; ////獲取該路徑下的所有檔案 getFiles(filePath, files ); char str[30]; int n = files.size(); ifstream fin; ofstream fout("merge.txt"); for (int i = 0;i < n;i++){ fin.open(files[i]); string a; \\fout<<i<<"\n"; while(getline(fin,a,'\n')){ fout<<a<<"\n"; } fin.close(); fin.clear(); } return 0; }