获取系统文件夹或文件

获取文件目录
OPENFILENAME ofn; // 公共对话框结构。
TCHAR szFile[MAX_PATH]; // 保存获取文件名称的缓冲区。
// 初始化选择文件对话框。
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = NULL;
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = ‘\0’;
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = L"All(.)\0*.*\0\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
//ofn.lpTemplateName = MAKEINTRESOURCE(ID_TEMP_DIALOG);
// 显示打开选择文件对话框。
if ( GetOpenFileName(&ofn) )
{
return szFile;
}

获取文件夹目录(排除系统盘)
	TCHAR szBuffer[MAX_PATH] = { 0 };
BROWSEINFO bi = { 0 };
bi.hwndOwner = NULL;//拥有着窗口句柄,为NULL表示对话框是非模态的,实际应用中一般都要有这个句柄
bi.pszDisplayName = szBuffer;//接收文件夹的缓冲区
bi.lpszTitle = TEXT("选择目录");//标题
bi.ulFlags = BIF_RETURNONLYFSDIRS;
LPITEMIDLIST idl = SHBrowseForFolder(&bi);
if (SHGetPathFromIDList(idl, szBuffer))
{
	CString strPath = szBuffer;
	int nPos = strPath.ReverseFind('\\');
	if (nPos == strPath.GetLength()-1)
	{
		MessageBox(NULL,_T("此目录不允许添加信任!"),_T(""),0);
	}
	else
	   return szBuffer;
}

猜你喜欢

转载自blog.csdn.net/sunqingok/article/details/85289441