123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- #include "stdafx.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;
- }
|