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

10 篇文章 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值