今天突然想写写东西,记录一下有用的东西. 这是一个遍历指定目录指定扩展名文件的函数,mfc的.效果图如下: 函数代码如下: void CEmuFilesDlg::EmuFiles(CString strPath, CString strType) { WIN32_FIND_DATA data={0}; CString csPath(strPath); const int strTypeLen = strType.GetLength(); csPath += "//*.*"; HANDLE handle = FindFirstFile((LPCSTR)csPath,&data); BOOL ret = (BOOL)handle; while(ret) { if(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if(data.cFileName[0] != '.') // if is Directory ,continue { csPath = strPath; csPath += ("//"); csPath += data.cFileName; EmuFiles(csPath,strType); } } else { csPath = strPath; // if find the type file, add it it to the ListBox csPath += ("//"); csPath += data.cFileName; if (strcmp(((LPCSTR)csPath)+csPath.GetLength()-strTypeLen, (LPCSTR)strType)==0) { m_ListBox.InsertString(nCount,csPath); m_ListBox.SetCurSel(nCount); m_nTotal = nCount; //UpdateData(FALSE); nCount ++; } } ret = FindNextFileA(handle,&data); } // end find. FindClose(handle); } 调用函数代码如下 EmuFiles("C:","exe"); 若想遍历各个盘符则: char path[]="C:"; char type[]="exe"; for (; path[0]<'Z'; path[0]++) { EmuFiles(path,type); }