#include <iostreamの> する#include <io.h> の#include <direct.h> の#include <TIME.H> の#include <ストリング> の#include <ベクトル> 使用して名前空間STD; //指定されたパスとすべてを読みますファイル名のフォルダ、およびフルパス ボイドgetAllFilesInDirs(文字列パス、ベクトルの<string>&fileFullpath){ のfileInfo _finddata_t、 文字列s、 CONSTチャー* filePathに= s.assign(パス).append(「\\ *。 「).c_str(); // CONSTのchar *型に文字列を変換 intptr_tファイルハンドル= _findfirst(filePathに、&のfileInfoは); //最初の情報ファイルハンドル、ファイルの種類が長い読み取ること長いと[Win10プラットフォーム互換性がありません声明ファイルハンドルクラッシュ] 文字列F; IF(FILEHANDLE == -1){ COUT << "N- \エラー"; を返します; } 一方(_findnext(ファイルハンドル、およびのfileInfo)== 0){ IF(fileInfo.attrib&_A_SUBDIR){ IF( " "のstrcmp(fileInfo.name)== 0 ||のstrcmp(fileInfo.name、" ..")== 0)続けます。 文字列NEWPATH =パス+ "\\" + fileInfo.name。 getAllFilesInDirs(NEWPATH、fileFullpath)。 } 他{ F =パス+ストリング( "\\")+ストリング(fileInfo.name)。 fileFullpath.push_back(F)。 } }。 _findclose(ファイルハンドル)。 } ////读取某给定路径下后缀名为形式得文件名称、并完整路径带 {ボイドgetAllFilesByformat(文字列パス、ベクトル<ストリング>&fileFullpath、文字列形式) のfileInfo _finddata_t。 文字列s; CONSTのchar * filePathに= s.assign(パス).append( "\\ *")(追加(フォーマット).c_str)。 FILEHANDLE = _findfirst intptr_t(filePathに、&のfileInfo); //長い最初のファイル情報ファイルハンドルのタイプを読むこと、互換性のない表示されます[長い宣言ファイルハンドルクラッシュとWin10インターネット] 文字列F; IF(FILEHANDLE == -1) { COUT << "N- \エラー"; 返す; } ながら(_findnext(FILEHANDLE、&のfileInfo)== 0){ (fileInfo.attrib&_A_SUBDIR){IF } 他{ F + =パス文字列( "\\")+ストリング(fileInfo.name); fileFullpath.push_back(F); } }; _findclose(ファイルハンドル); } //ファイル拡張子得る ストリングGetExtension(文字列のファイル名){ 戻りfilename.substr(filename.find_last_of()+ 'と' 1); } //文字列ベクトルに分割します ベクター<ストリング> string_split(CONST文字列STRと、CONST文字列&DELIM){ ベクトル<ストリング> RES; IF( "" == STR)RESリターン; //最初の文字列は、char *型変換する文字列型から切断される * CHARをSTRS =新しいのchar [str.length() + 1]; // 忘れてはいけない のstrcpyを(STRを、str.c_str()); のchar * D =新しい新しいのchar [delim.length()+ 1]; strcpyの(D、 delim.c_str()); * P =はstrtok(STRの、D)をchar型、 一方(P){ 文字列S = P; //文字列型除した文字列に変換 res.push_back(単数または複数); //格納されています得られた配列 P =はstrtok(NULL、D); } 戻りRES; } //再帰的にフォルダを作成し self_mkdirs(文字列のファイル名)がINT { ファイル名+ = "\\"; char型* fileNameに=(CHAR *)filename.c_str() ; *タグをchar型。 0 = INT; (; *タグ、タグ++、A ++タグ= filename)で用 { (*タグ== '\\')IF { 文字列new_path filename.substr =(0、+ Aの1)、 IF(_access(new_path .c_str()、0)== -1 )// フォルダが存在しない場合 _mkdirを(new_path.c_str()); //作成 } } 戻り0; }