记住上次遍历文件夹时的路径,递归遍历目录下的文件
来源:互联网 发布:监控电脑软件 编辑:程序博客网 时间:2024/04/29 20:05
1、浏览文件夹并记住上次选择目录
static TCHAR szDir[MAX_PATH] ;int CALLBACK BrowseCallbackProc(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData) {LPITEMIDLIST tmp = (LPITEMIDLIST)lParam;switch (uMsg){case BFFM_INITIALIZED:SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)lpData);break;case BFFM_SELCHANGED:TCHAR buffer[MAX_PATH];if (SHGetPathFromIDList((LPITEMIDLIST) tmp ,buffer)){SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)buffer);}break;default:break;}return 0; }void OnBnClicked(UINT id){// TODO: 在此添加控件通知处理程序代码BROWSEINFO bi;memset(&bi, 0 , sizeof(bi));TCHAR Buffer[MAX_PATH] = {0};bi.hwndOwner = NULL;bi.pidlRoot =NULL;//初始化制定的root目录很不容易bi.pszDisplayName = Buffer;//此参数如为NULL则不能显示对话框bi.lpszTitle = _T("选择文件路径");bi.ulFlags = BIF_STATUSTEXT;//包括文件bi.lpfn = BrowseCallbackProc;bi.iImage=IDR_MAINFRAME;bi.lParam = (LPARAM)szDir;//初始化入口参数bi结束LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//调用显示选择对话框if(pIDList){SHGetPathFromIDList(pIDList, Buffer);memcpy(szDir, Buffer, MAX_PATH);switch (id){case IDC_INPUT:m_strInput = Buffer;break;case IDC_OUTPUT:m_strOutput = Buffer;break;default:break;}UpdateData(FALSE);}// free memory used IMalloc * imalloc = 0;if ( SUCCEEDED(SHGetMalloc( &imalloc))){imalloc->Free (pIDList);imalloc->Release();}}
2、递归遍历目录下的文件
void RecursiveSearchDir(CString path){WIN32_FIND_DATA wData;memset(&wData, 0, sizeof(WIN32_FIND_DATA));CString strFind = path + _T("\\*.*");HANDLE hFind = FindFirstFile(strFind, &wData);if (INVALID_HANDLE_VALUE == hFind){return;}do {if (CString(wData.cFileName).CompareNoCase(_T(".")) && CString(wData.cFileName).CompareNoCase(_T(".."))){if (wData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){RecursiveSearchDir(path + _T("\\") + wData.cFileName);}else{CString fileName(path + _T("\\") + wData.cFileName);m_vecInput.push_back(fileName);}}} while ( FindNextFile(hFind, &wData));}
0 0
- 记住上次遍历文件夹时的路径,递归遍历目录下的文件
- 递归遍历文件夹下的所有文件
- linux下遍历某个目录的文件,或者文件夹。遍历、递归
- 遍历目录下的文件和文件夹
- 递归遍历某个路径下的文件
- 递归遍历目录下的文件
- php递归遍历目录下的文件
- php递归遍历目录下的文件
- 使用递归方式遍历指定磁盘路径下的文件及文件夹
- VB.net遍历路径下的所有文件及所有子文件夹---递归算法
- 【Python】遍历某目录下的所有文件夹与文件的路径、输出中文乱码问题
- Delphi下遍历文件夹下所有文件的递归算法
- Delphi下遍历文件夹下所有文件的递归算法
- 递归的一些方法使用:深度遍历路径中的所有文件和目录,删除一个有文件的文件夹
- C# 遍历目录下所有文件夹下的文件
- C# 遍历目录下所有文件夹下的文件
- 递归遍历一个文件目录下的所有文件
- 递归遍历某文件夹下所有文件的算法
- Dom4j的学习
- .Net框架学习
- HDOJ 1796 How many integers can you find 容斥原理
- Why Redis beats Memcached for caching
- iOS所有常用证书,appID,Provisioning Profiles配置说明及制作图文教程
- 记住上次遍历文件夹时的路径,递归遍历目录下的文件
- stl的list、set、map删除方法
- 驱动日积月累
- P051第十题
- Java Map按键(Key)排序和按值(Value)排序
- plist解析工具:Anti_TexturePacker
- 快速处理静态数据
- android开发之常用OAuth登录与分享详解
- Qt开发,链接了数据库后,调用QSqlQuery::setQuery执行SQL语句获取我们想要的数据