void DelFiles(CString&strDirPath, CString strFileName, BOOL bDelAll) { CFileFind FileFinderstrDirPath = strDirPath + _T("\\")CString strFilePath = strDirPath + strFileNamewhile (TRUE) { if (FileFinder.FindFile(strFilePat...这个满足你的要求s返回
文件路径#defineDLG_FILTER"ALLFiles(*.*)|*.*||"#defineDLG_EXT"*"CFileDialogdlg(TRUE,_T(DLG_EXT),NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT,_T(DLG_FILTER))if(dlg.DoModal()==IDOK){POSITIONpos=dlg.GetStartPosition()while(pos!=0){CStrings=dlg.GetNextPathName(pos)}}下面代码,可以选择文件夹,会返回文件夹的路径需要自己查找每个文件char*GetPath(HWNDhWnd,char*pBuffer){BROWSEINFObfLPITEMIDLISTlpitemmemset(&bf,0,sizeofBROWSEINFO)bf.hwndOwner=hWndbf.lpsztitle="选择路径"bf.ulFlags=BIF_RETURNONLYFSDIRS//属性你可自己选择lpitem=SHBrowseForFolder(&bf)if(lpitem==NULL)//如果没有选择路径则返回0return0//如果选择了路径则复制路径,返回路径长度SHGetPathFromIDList(lpitem,pBuffer)returnpBuffer}
在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()
}
评论列表(0条)