用c++打开一个文件夹

就像千千静听里的添加文件夹那样。该怎么写呢?谢谢各位高手啦热切地希望,各位高手可以给出详细点的答案... 就像千千静听里的添加文件夹那样。 该怎么写呢? 谢谢各位高手啦
热切地希望,各位高手可以给出详细点的答案
展开
 我来答
h34903
2015-08-18 · 知道合伙人宠物行家
h34903
知道合伙人宠物行家
采纳数:16 获赞数:980
嘉应学院在校生

向TA提问 私信TA
展开全部
  用c++打开一个文件夹的方法如下:可以实现单选文件或者多选文件,代码如下:
  需引入头文件#include "CommDlg.h"
  [cpp] view plaincopy
  TCHAR szBuffer[MAX_PATH] = {0};
  OPENFILENAME ofn= {0};
  ofn.lStructSize = sizeof(ofn);
  ofn.hwndOwner = m_hWnd;
  ofn.lpstrFilter = _T("Exe文件(*.exe)\0*.exe\0所有文件(*.*)\0*.*\0");//要选择的文件后缀
  ofn.lpstrInitialDir = _T("D:\\Program Files");//默认的文件路径
  ofn.lpstrFile = szBuffer;//存放文件的缓冲区
  ofn.nMaxFile = sizeof(szBuffer)/sizeof(*szBuffer);
  ofn.nFilterIndex = 0;
  ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_EXPLORER ;//标志如果是多选要加上OFN_ALLOWMULTISELECT
  BOOL bSel = GetOpenFileName(&ofn);

  这样就可以打开选择文件对话框了。可以选择需要的文件。szBuffer是存放的选择的文件路径。
表情君装x图在线制作
2010-07-09 · TA获得超过1928个赞
知道小有建树答主
回答量:645
采纳率:0%
帮助的人:168万
展开全部
例如如果想打开D盘中名为111.txt的记事本
system("D:\\111.txt");
加上头文件 #include<windows.h>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友133cb66fa
2010-07-09 · TA获得超过324个赞
知道小有建树答主
回答量:692
采纳率:0%
帮助的人:380万
展开全部
C++语言本身没有这个特性支持..

那个东西叫文件对话框,,
用windows API可以.
comdlg32.dll 中的 GetOpenFileName
参数类型为OPENFILENAME结构类型的指针.

具体用法: 略.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
变数之眼
2010-07-09
知道答主
回答量:60
采纳率:0%
帮助的人:23.5万
展开全部
c++本身是没有文件夹功能的,如果是C的话可以用system()来做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友de28292a0
2010-07-10 · TA获得超过733个赞
知道小有建树答主
回答量:667
采纳率:0%
帮助的人:765万
展开全部
#include <string>
#include <iostream>
#include <shlobj.h>
#include <tchar.h>
using namespace::std;

int main() {
string strInitFolder = _T("");
TCHAR szPath[MAX_PATH] = _T("");
LPMALLOC lpMalloc = NULL;
string strFolder = _T("");
BROWSEINFO sInfo;
LPITEMIDLIST lpidlBrowse = NULL;

if (::SHGetMalloc(&lpMalloc) != NOERROR)
return 0;

::ZeroMemory(&sInfo, sizeof(BROWSEINFO));
sInfo.pidlRoot = 0;
sInfo.pszDisplayName = szPath;
sInfo.lpszTitle = _T("请选择您需要的目的文件夹:");
sInfo.ulFlags = BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS;
sInfo.lpfn = NULL;

// 显示文件夹选择对话框
lpidlBrowse = ::SHBrowseForFolder(&sInfo);

if (lpidlBrowse != NULL) {
// 取得文件夹名
if (::SHGetPathFromIDList(lpidlBrowse, szPath)) {
strFolder = szPath;
cout<<_T("选择的文件夹为:")<<endl;
cout<<strFolder<<endl;
}

}

if (lpidlBrowse != NULL) {
::CoTaskMemFree(lpidlBrowse);
}
lpMalloc->Release();
return 1;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式