1.获取文件路径
TCHAR szProFile[MAX_PATH];
GetModuleFileName(NULL, szProFile, MAX_PATH); //获取exe路径f:\Test\Debug\Test.exe
//GetCurrentDirectory(MAX_PATH,path) 获取当前目录f:\Test\Test
CString sFileName;
CString stemp;
PathRemoveFileSpec(szProFile); //去掉文件名的路径
stemp.Format(_T("%s"),szProFile); //f:\Test\Debug
// stemp.Format(_T("%s"),szProFile);
// int iposition = stemp.ReverseFind(_T('\\'));
// CString str = stemp.Left(iposition);
PathRemoveFileSpec 功能:删除路径后面的文件名和’/’符号。该函数可以分析出一个文件的路径
2.获取用户选择的文件路径:
TCHAR szBuffer[MAX_PATH*2] = {0};
BROWSEINFO bi;
ZeroMemory(&bi,sizeof(BROWSEINFO));
bi.hwndOwner = NULL;
bi.pszDisplayName = szBuffer; //此参数如为NULL则不能显示对话框
bi.lpszTitle = _T("设置文件查找路径:");
bi.ulFlags = BIF_RETURNONLYFSDIRS; //只允许用户选择目录,BIF_BROWSEINCLUDEFILES(允许用户选择文件)
LPITEMIDLIST idl = SHBrowseForFolder(&bi); //弹出一个对话框,便于用户选择文件的路径
SHGetPathFromIDList(idl,szBuffer); //获取选择文件夹路径
3.查找文件名 WIN32_FIND_DATA data;
vector<CString> v_File;
HANDLE hFile = FindFirstFile(_T("F:\\Works\\*.xlsx"),&data);
while(INVALID_HANDLE_VALUE != hFile)
{
v_File.push_back(data.cFileName);
FindNextFile(hFile,&data);
}