161上位机VC MFC任意位置创建与删除文件夹
161上位机VC MFC任意位置创建与删除文件夹
功能展示
在上位机程序开发过程中,对文件夹的操作是必不可少的,比如程序参数作为文件保存到指定的位置,就得创建文件夹,当前例程实现在程序根目录创建文件夹和在指定位置创建功能,效果如图; 要点提示 文件夹的创建可以用函数CreateDirectory(); 文件夹的删除可以用函数RemoveDirectory(); 浏览位置进行指定位置创建文件夹可以用函数SHBrowseForFolder()创建对话框供用户选择,用户确认后通过函数SHGetPathFromIDList()获取用户选择的路径; 功能实现 1.新建基于对话框的应用程序 2.拖拽一编辑框ID为IDC_EDIT1,实现目录位图的显示;拖拽三个按钮控件,关联函数分别实现《在根目录建立><指定位置建立><删除文件夹>功能; void CGkbc8Dlg::OnButton1() { CString sName; charbuf[_MAX_PATH]; ::GetCurrentDirectory(_MAX_PATH,buf);//获取程序根目录路径 GetDlgItem(IDC_EDIT1)->GetWindowText(sName); strcat(buf,"\\"); strcat(buf,sName);
if(CreateDirectory(buf,NULL)) SetDlgItemText(IDC_EDIT1,buf); } void CGkbc8Dlg::OnButton3() { CString sPath; GetDlgItem(IDC_EDIT1)->GetWindowText(sPath); if(!sPath.IsEmpty()) RemoveDirectory(sPath);
} void CGkbc8Dlg::OnButton2() { charcDesktop[_MAX_PATH]; SHGetSpecialFolderPath(0,cDesktop,CSIDL_DESKTOPDIRECTORY,0);//桌面目录
BROWSEINFO bi; bi.hwndOwner =this->GetSafeHwnd(); bi.pidlRoot = NULL; bi.pszDisplayName = NULL; bi.lpszTitle = TEXT("请选择文件夹"); bi.ulFlags =BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT; bi.lpfn = BrowseCallBackFun;//回调函数 bi.lParam = (LPARAM)cDesktop; //传给回调函数的参数,设置默认路径 bi.iImage = 0; LPITEMIDLISTpidl = SHBrowseForFolder(&bi); //打开浏览对话框 if (pidl == NULL) return; TCHARpszPath[MAX_PATH]; if(SHGetPathFromIDList(pidl, pszPath)) //点击确认后 { CString sName; GetDlgItem(IDC_EDIT1)->GetWindowText(sName); strcat(pszPath,"\\"); strcat(pszPath,sName); if(CreateDirectory(pszPath,NULL)) SetDlgItemText(IDC_EDIT1,pszPath); } } bi.lpfn = BrowseCallBackFun指定了我们自定义的回调函数实现额外功能,不需要可将bi.lpfn =NULL;
我们来演示下功能实现的整个过程
|