vc 文件和文件路径选择

//1、首先给出的文件夹路径选择的简单例子;(SHBrowseForFolder)
	BROWSEINFO bi;
	WCHAR szPath[MAX_PATH];
	ZeroMemory((void*)&bi, sizeof(bi));
	ZeroMemory(szPath, sizeof(szPath));

	bi.hwndOwner = this->m_hWnd;
	bi.pidlRoot = NULL;
	bi.pszDisplayName = szPath;
	bi.lpszTitle = L"搜索目录";
	bi.ulFlags = BIF_RETURNONLYFSDIRS; ///< 任选目录
	bi.lpfn = NULL;
	bi.lParam = NULL;
	bi.iImage = NULL;

	LPITEMIDLIST lpdList = SHBrowseForFolder(&bi);

	if (NULL == lpdList)
	{
		return ; ///< 选择cancel
	}

	if (SHGetPathFromIDList(lpdList, szPath))
	{
		// szPath is valid;
		CString path = szPath;
	}
//2、这里给出的是(CFileDialog )的例子;
//更多的参数设置参见CFileDialog ::m_ofn的设置,详见msdn


	OPENFILENAME ofn;
	//ZeroMemory((void*)&ofn, sizeof(ofn));
	//ofn.lStructSize = sizeof (OPENFILENAME);
	//ofn.hwndOwner = this->m_hWnd;
	//ofn.hInstance = NULL;
	//ofn.lpstrFilter = L"Text (*.txt)|(*.txt)||";
	//ofn.lpstrCustomFilter = ;
	//ofn.nMaxCustFilter = ;
	//ofn.nFilterIndex = ;
	//ofn.lpstrFile = ;
	//ofn.nMaxFile = MAX_PATH;


	CFileDialog dlgFile(TRUE);	///< true表示文件选择,false 文件保存,具体参见msdn
	CString fileName;
	WCHAR path[MAX_PATH+1];
	ZeroMemory(path, sizeof(path));
	dlgFile.GetOFN().lpstrFile = path;
	dlgFile.GetOFN().nMaxFile = MAX_PATH;

	if (IDCANCEL == dlgFile.DoModal())
	{
		return ;
	}

	CString pathName = dlgFile.GetPathName();
	CString selectFile = dlgFile.GetFileName();

	///< 多选路径读取;
	POSITION pos = NULL;
	CString posPaht;
	do {
		pos = dlgFile.GetStartPosition();
		if (pos != NULL)
		{
			posPaht = dlgFile.GetNextPathName(pos);
			MessageBox(posPaht, L"提示");
		}		
	} while(pos != NULL);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值