这个满足你的要求
s返回文件路径
#define
DLG_FILTER
"ALL
Files
()|||"
#define
DLG_EXT
"
"
CFileDialog
dlg(TRUE,
_T(DLG_EXT),
NULL,
OFN_HIDEREADONLY
|
OFN_OVERWRITEPROMPT
|
OFN_ALLOWMULTISELECT,
_T(DLG_FILTER));
if
(dlgDoModal()
==
IDOK)
{
POSITION
pos
=
dlgGetStartPosition();
while
(pos
!=
0)
{
CString
s
=
dlgGetNextPathName(pos);
}
}
下面代码,可以选择文件夹,会返回文件夹的路径
需要自己查找每个文件
char
GetPath(HWND
hWnd,char
pBuffer)
{
BROWSEINFO
bf;
LPITEMIDLIST
lpitem;
memset(&bf,0,sizeof
BROWSEINFO);
bfhwndOwner=hWnd;
bflpszTitle=
"选择路径";
bfulFlags=BIF_RETURNONLYFSDIRS;
//属性你可自己选择
lpitem=SHBrowseForFolder(&bf);
if(lpitem==NULL)
//如果没有选择路径则返回
0
return
0;
//如果选择了路径则复制路径,返回路径长度
SHGetPathFromIDList(lpitem,pBuffer);
return
pBuffer;
}
给段代码你好好研究下
CFileFind finder;
BOOL bWorking = finderFindFile("");
while (bWorking) {
bWorking = finderFindNextFile();
cout << (LPCTSTR) finderGetFileName() << endl;
}
那给你补上吧:)
//取临时目录
格式
C:\Documents
and
Settings\用户名\Local
Settings\Temp
char
a[MAX_PATH];
SHGetSpecialFolderPath
(0,a,40,FALSE);
sprintf(a+strlen(a),"%s","\\Local
Settings\\Temp");
AfxMessageBox(a);
//换成短路径名
格式
C:\DOCUME~1\用户名~1\LOCALS~1\Temp
char
shortpath[MAX_PATH];
GetShortPathName(a,shortpath,255);
AfxMessageBox(shortpath);
//显示短路径名
//取windows目录
和
system32目录
char
systempath[255]={0};
GetSystemDirectoryA(systempath,MAX_PATH);
sprintf(systempath+strlen(systempath),"%s","
->
system32目录");
AfxMessageBox(systempath);
char
windowspath[255]={0};
GetWindowsDirectory(windowspath,MAX_PATH);
sprintf(windowspath+strlen(windowspath),"%s","
->
windows目录");
AfxMessageBox(windowspath);
//文件是否存在
(此例显示c:\bootini是否存在)
DWORD
a=
GetFileAttributes("c:\\bootini");
if
(a==-1)
{
AfxMessageBox("文件不存在");
}
else
{
AfxMessageBox("文件存在");
}
。。。其它的
GetTempPath
等等一系列API
你可以去查一下
百度搜索:VC
如何取xxx目录
在此不一一列举
还有一个枚举的API
可以取出所有的环境变量
SHGetSpecialFolderPath
API的应用就不多介绍了~这个你可以查下MSDN
GetSafeHandle();
this-> hWnd;
GetDlgItem(hwnd,ID);//获取窗口ID所对应的HWND的子窗口句柄
在主窗口中,如果要用到父窗口的句柄,可以用
HWND GetParent(HWND hWnd) 得到
参数为当前所在子窗口的句柄,函数的返回值就是当前子窗口的父窗口句柄
在父窗口中,如果有子窗口句柄,可以调用 GetWindowLong(hwndChild,GWL_ID)
参数GWL_ID就是用语获取子窗口的句柄
HWND FindWindow(
LPCTSTR lpClassName, // pointer to class name
LPCTSTR lpWindowName // pointer to window name
);
其中lpClassName是窗口的类名,你可以用spy++来查看其类的名称;lpWindowName是窗口的名称,一般指的是窗口的标题。如果窗口 的名称唯一,则窗口的类名可以省略,如:
HWND hWnd;
hWnd = ::FindWindow(NULL, "你的窗口标题 ");
对象-> GetSafeHwnd(); //控件对象
~你的采纳是我前进的动力,还又不明白的地方,请“追问”,我定知无不言!!
~如有新的问题,可另外向我求助,答题不易,互相理解,互相帮助!
O(∩_∩)O,记得好评和采纳,祝开心快乐,事事如意!
以上就是关于MFC按钮打开选择一个文件夹,然后获得文件夹中的所有txt文件名称!全部的内容,包括:MFC按钮打开选择一个文件夹,然后获得文件夹中的所有txt文件名称!、MFC combobox下拉菜单,显示文件夹或者文件目录、VC MFC 文件 *** 作问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)