用c++打开一个文件夹
就像千千静听里的添加文件夹那样。该怎么写呢?谢谢各位高手啦热切地希望,各位高手可以给出详细点的答案...
就像千千静听里的添加文件夹那样。 该怎么写呢? 谢谢各位高手啦
热切地希望,各位高手可以给出详细点的答案 展开
热切地希望,各位高手可以给出详细点的答案 展开
5个回答
展开全部
用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是存放的选择的文件路径。
需引入头文件#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是存放的选择的文件路径。
展开全部
例如如果想打开D盘中名为111.txt的记事本
system("D:\\111.txt");
加上头文件 #include<windows.h>
system("D:\\111.txt");
加上头文件 #include<windows.h>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++语言本身没有这个特性支持..
那个东西叫文件对话框,,
用windows API可以.
comdlg32.dll 中的 GetOpenFileName
参数类型为OPENFILENAME结构类型的指针.
具体用法: 略.
那个东西叫文件对话框,,
用windows API可以.
comdlg32.dll 中的 GetOpenFileName
参数类型为OPENFILENAME结构类型的指针.
具体用法: 略.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c++本身是没有文件夹功能的,如果是C的话可以用system()来做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
#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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询