关闭

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

152人阅读 评论(0) 收藏 举报
分类:


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();

	}
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:140260次
    • 积分:3831
    • 等级:
    • 排名:第8305名
    • 原创:252篇
    • 转载:25篇
    • 译文:0篇
    • 评论:8条
    最新评论