C ++一般的に使用される機能

 

#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; 
}

  

おすすめ

転載: www.cnblogs.com/dxscode/p/11698344.html