您的位置:首页 > 其它

工具类(2)-- 获取文件的路径或者目录路径

2015-11-19 18:32 399 查看
FileFilterClass.h

#pragma once
class CFileFilterClass
{
public:
CFileFilterClass();
~CFileFilterClass();

//浏览文件
void FileBrowser(CString & filePath, CWnd* pParentWnd, LPCTSTR fix);

//浏览文件夹
void  FileDirBrowser(CString & filePath);

};


FileFilterClass.cpp

#include "stdafx.h"
#include "FileFilterClass.h"
#include <afxdlgs.h>

CFileFilterClass::CFileFilterClass()
{
}

CFileFilterClass::~CFileFilterClass()
{
}

/************************************************************************/
/* 方法名称:  FileDirBrowser
/* 方法全称: CFileFilterClass::FileDirBrowser
/* 参数:	  CString & filePath 获取到的文件目录路径
/* 返回值:	  void
/* 说明:     获取到浏览文件目录的路径
/************************************************************************/
void CFileFilterClass::FileDirBrowser(CString & filePath)
{
filePath = _T("");
BROWSEINFO bi;
WCHAR Buffer[512];
//初始化入口参数bi开始
bi.hwndOwner = NULL;
bi.pidlRoot = NULL;
bi.pszDisplayName = Buffer;//此参数如为NULL则不能显示对话框
bi.lpszTitle = L"选择路径";
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.iImage = 0;
//初始化入口参数bi结束
LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//调用显示选择对话框
if (pIDList)//选择到路径(即:点了确定按钮)
{
SHGetPathFromIDList(pIDList, Buffer);
//取得文件夹路径到Buffer里
filePath = Buffer;//将路径保存在一个CString对象里
}
return;
}

/************************************************************************/
/* 方法名称:  FileBrowser
/* 方法全称: CFileFilterClass::FileBrowser
/* 参数:	  CString & filePath  文件路径
/* 返回值:	  void
/* 说明:    获取到浏览的文件路径
/************************************************************************/
void CFileFilterClass::FileBrowser(CString & filePath, CWnd* pParentWnd, LPCTSTR fix=_T("exe"))
{

// 设置过滤器
//TCHAR szFilter[] = _T("链接库文件(*.dll)|*.dll|所有文件(*.*)|*.*||");
CString szFiler ;
szFiler.Format(_T("文件(*.%s)|*.%s|所有文件(*.*)|*.*||"), fix, fix);

// 构造打开文件对话框
CFileDialog fileDlg(true, fix, NULL, 0, szFiler, pParentWnd);

// 显示打开文件对话框
if (IDOK == fileDlg.DoModal())
{
// 如果点击了文件对话框上的“打开”按钮,则将选择的文件路径显示到编辑框里
filePath = fileDlg.GetPathName();

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: