在MFC中,使用CFileFind类,可以枚举一个目录下的所有文件和子目录。
示例:
void ListFolder(const CString & sPath){
CFileFind ff
BOOL bFound = ff.FindFile(sPath + "\\*.*")
while(bFound)
{
bFound = ff.FindNextFile()
if(ff.IsDirectory()) //是目录
{
if(!ff.IsDots()) //不是本级目录或父目录(.和..)
ListFolder(ff.GetFilePath()) //递归子目录
}
else
{
AfxMessageBox("文件:" + ff.GetFilePath())
}
}
ff.Close()
}
void CXXXDlg::SearchFiles(CString strMusicFolder){
CFileFind ff
strMusicFolder += _T("\\")
strMusicFolder += _T("*.*")
BOOL res = ff.FindFile(strMusicFolder)
while (res)
{
res = ff.FindNextFile()
if (!ff.IsDirectory() && !ff.IsDots())
{
afxMessageBox(ff.GetFilePath())
}
}
ff.Close()
}
CFileFind findCString Path = lpszPath
CString lpsz = Path +L"\\"
Path = Path +L"\\*.*"
BOOL IsFind = find.FindFile(Path)
while(IsFind )
{
IsFind=find.FindNextFile()
//如果是"."则不扫描
if(find.IsDots())
continue
//是目录,继续扫描此目录
else if(find.IsDirectory())
{
CString strPath = lpszPath
strPath = strPath + L"\\" + find.GetFileName()
ScanDiskFile(strPath)
}
//文件
else
{
//获得文件的路径
m_strFile = find.GetFileName()
CString extend = m_strFile.Right(m_strFile.GetLength() - m_strFile.ReverseFind('.') - 1)//取得扩展名
if (extend == m_ext_one | extend == m_ext_two)//m_ext_now为你要查找的文件扩展名
{
m_strArray.Add(lpsz + m_strFile)
}
}
}
find.Close()
m_ext_one、m_ext_two用于指定需要搜索的文件后缀名
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)