您的位置:首页 > 其它

MFC读取文件夹中的文件,并且进行排序

2016-09-06 18:04 691 查看
使用MFC中的API进行读取文件夹里面的文件的时候,读取的顺序是按照硬盘存储的顺序进行读取的,因此读取的文件名字的序号不是从小到大排序。

下面的代码可以实现从MFC中读取文件夹里面的文件名,同时还利用STL的方法进行了排序。

//全局谓词
bool SortbynumASC(const CString& x, const CString& y)
{
int nLeft, nRight;
nLeft = atoi(	GetAnsiString(x.Left(x.ReverseFind('.')).GetBuffer(0))	);
nRight = atoi(	GetAnsiString(y.Left(y.ReverseFind('.')).GetBuffer(0))	);
return nLeft<nRight;

}
/*************************************************************************/

void GainPointCloud::SearchFiles(CString strMusicFolder, vector<CString> &m_FileList)
{
CFileFind ff;
CString strFile;
strMusicFolder += _T("\\");

strMusicFolder += _T("*.*");

BOOL res = ff.FindFile(strMusicFolder);

while (res)
{
res = ff.FindNextFile();
if (!ff.IsDirectory() && !ff.IsDots())
{
strFile = ff.GetFileName();
m_FileList.push_back(strFile);
}
}
ff.Close();

sort(m_FileList.begin(), m_FileList.end(), SortbynumASC);
return;
}


方法转自:点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: