文件操作

本文介绍了在Windows环境下如何通过API进行文件路径的操作,包括获取当前执行文件的路径、让用户选择文件路径以及查找特定文件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值