#include "pch.h" #include "filehelper.h" #include // 排序和乱序使用stl; #include #include #include // _mkdir头文件; #include int myrandom(int i) { return std::rand() % i; } filehelper::filehelper(void) { } filehelper::~filehelper(void) { } /************************************************************************/ /* 函数:[2/21/2017 Jeff]; /* 描述:; /* 参数:; /* [IN] :; /* [OUT] :; /* [IN/OUT] :; /* 返回:void; /* 注意:; /* 示例:; /* /* 修改:; /* 日期:; /* 内容:; /************************************************************************/ void filehelper::random(IN STR_VEC& vtContent, IN BOOL bSort /* = TRUE */) { if (bSort) {//排序; std::sort(vtContent.begin(), vtContent.end()); } else {//乱序; //设置随即数生成器的种子; std::srand(unsigned(std::time(0))); std::random_shuffle(vtContent.begin(), vtContent.end(), myrandom); } } /************************************************************************/ /* 函数:[2/21/2017 Jeff]; /* 描述:; /* 参数:; /* [IN] :; /* [OUT] :; /* [IN/OUT] :; /* 返回:void; /* 注意:; /* 示例:; /* /* 修改:; /* 日期:; /* 内容:; /************************************************************************/ void filehelper::split(OUT vector& vtSplit, IN const TString str, IN const TString strSplit) { if (str.size() == 0 || strSplit.size() == 0) return; INT nIndex = 0; vtSplit.clear(); TString strtmp = str; TString strtmp2; do { if (TString::npos != (nIndex = strtmp.find_first_of(strSplit))) { strtmp2 = strtmp.substr(0, nIndex); if (strtmp2.size())vtSplit.push_back(strtmp2); strtmp = strtmp.substr(nIndex + strSplit.size()); } } while (strtmp.find_first_of(strSplit) != TString::npos); if (strtmp.size()) vtSplit.push_back(strtmp); } ////////////////////////////////////////////////////////////////////////// BOOL filehelper::getsubfolder(LPCTSTR lpfolder, STR_VEC *pvtfolders) { // 路径不存在; if (!PathFileExists(lpfolder)) return FALSE; // 指针空; if (pvtfolders == NULL) return FALSE; m_pvtfolders = pvtfolders; findsubfolder(lpfolder); return TRUE; } ////////////////////////////////////////////////////////////////////////// BOOL filehelper::getallfiles(LPCTSTR lpfolder, LPCTSTR lpfindext, STR_VEC *pvtfiles) { // 路径不存在; if (!PathFileExists(lpfolder)) return FALSE; // 指针空; if (pvtfiles == NULL) return FALSE; m_pvtfiles = pvtfiles; findfiles_findin_subfolder(lpfolder); return TRUE; } BOOL filehelper::getfolderfiles(LPCTSTR lpfolder, LPCTSTR lpfindext, STR_VEC *pvtfiles) { // 路径不存在; if (!PathFileExists(lpfolder)) return FALSE; // 指针空; if (pvtfiles == NULL) return FALSE; m_pvtfiles = pvtfiles; findfiles_findout_subfolder(lpfolder); return TRUE; }