-
1. 选择文件,一个WIN API就OK GetOpenFileName
-
OPENFILENAME om; ZeroMemory(&om,sizeof(om)); //必须清空 om.lStructSize = sizeof(om); om.nMaxFile = MAX_PATH; om.nMaxFileTitle = MAX_PATH;//上面三个大小必须填充 om.lpstrFilter = "TXT\0*.txt\0" "PDF\0*.pdf\0\0";//需要固定打开的文件类型,每种类型就是一个字符串,传进去的应该是个字符串组 char file[MAX_PATH]={0}; char filename[MAX_PATH] = {0}; om.lpstrFile = file;//用来存放文件路径,这儿缓冲区必须初始化,直接用会崩溃 om.lpstrFileTitle = filename;//同上面一样 ::GetOpenFileName(&om); AfxMessageBox(file); AfxMessageBox(filename);
2. 为保存文件选择路径,同选择文件一样有个对应的API GetSaveFileName。方法基本相同。
3.还有一个更好用的,目录文件都可以选择的API SHBrowseForFolder,不过这个API要同SHGetPathFromIDList搭配使用
char path[MAX_PATH] = {0}; BROWSEINFO bi; ZeroMemory(&bi,sizeof(bi)); bi.ulFlags = BIF_BROWSEINCLUDEFILES; LPITEMIDLIST pList = ::SHBrowseForFolder(&bi); ::SHGetPathFromIDList(pList,path); AfxMessageBox(path);
-
选择文件操作
最新推荐文章于 2023-04-20 10:56:18 发布