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