#include "pch.h" #include "filehelper.h" #include <shlwapi.h> // ���������ʹ��stl; #include <cstdlib> #include <ctime> #include <algorithm> // _mkdirͷ�ļ�; #include <direct.h> 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<TString>& 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; }