Win32 操作字符串路径API

       Win32有许多操作字符串路径的API,整理记录下来方便以后使用。

//关于windows路径的API
	//声明路径变量用 TCHAR szPath[MAX_PATH] 来声明
	TCHAR szPath[MAX_PATH] = _T("D:\\资料\\整理的笔记");
	TCHAR szPath2[MAX_PATH] = _T("资料\\笔记");
	TCHAR szPath3[MAX_PATH] = _T("");
	LPTSTR pszPath = NULL;

	::PathRemoveBackslashW(szPath);//去除路径最后的反斜杠“\\”
	::PathAddBackslashW(szPath);//在路径最后加上反斜杠“\\”
	::PathRemoveBlanksW(szPath);//去除路径前后的空格

	pszPath = ::PathFindExtensionW(szPath);//查找路径的扩展名
	bRet = ::PathMatchSpecW(szPath,_T("*.dwg"));//判断路径是否匹配制定的扩展名
	::PathAddExtensionW(szPath,_T(".dwg"));//在文件路径后面加上扩展名
	::PathRemoveExtensionW(szPath);//去除文件路径扩展名
	::PathRenameExtensionW(szPath,_T(".pdf"));//更改文件路径扩展名

	pszPath = ::PathFindFileNameW(szPath);//获取路径的文件名
	::PathStripPathW(szPath);//去掉路径中的目录部分,得到文件名
	::PathRemoveFileSpecW(szPath);//去除文件名,得到目录
	::PathStripToRootW(szPath);//得到根目录

	::PathAppendW(szPath,szPath2);//将一个路径追加到另一个路径后面
	::PathCombineW(szPath3,szPath,szPath2);//合并两个路径

	bRet = ::PathRelativePathToW(szPath3,szPath,FILE_ATTRIBUTE_NORMAL,szPath2,FILE_ATTRIBUTE_DIRECTORY);//创建一个路径到另一个路径的相对路径 FILE_ATTRIBUTE_DIRECTORY:代表是一个文件夹,否则视为文件
	bRet = ::PathYetAnotherMakeUniqueName(szPath3,szPath,NULL,NULL);//基于已存在的文件,自动创建一个唯一的文件名。比较有用,比如存在“新建文件”,此函数会创建文件名“新建文件(2)”
	::SHGetSpecialFolderPathW(nullptr, szPath3, CSIDL_APPDATA, TRUE);//得到的是C盘中:C:\Users\17621\AppData\Roaming下的目录
	
	HMODULE hModule = ::AfxGetInstanceHandle();//获取当前应用程序的实例句柄
	hModule = ::AfxGetResourceHandle();//获取当前应用程序的资源模块句柄
	::AfxSetResourceHandle(hModule);//设置程序目前要使用的资源模块句柄
	hModule = ::GetModuleHandleW(_T("MyBaseDLL.dll"));//获取一个应用程序或动态链接库的模块句柄。只有在当前进程的场景中,这个句柄才会有效。

	::GetModuleFileNameW(hModule, szPath3, MAX_PATH);//通过句柄获得完整路径
	wchar_t buffer[MAX_PATH];
	DWORD code = GetEnvironmentVariable(L"JDC_PROTAL", buffer, MAX_PATH);//得到环境变量的值
	::GetCurrentDirectoryW(MAX_PATH,szPath3);//得到当前进程的工作路径
	::SetCurrentDirectoryW(_T("E:\\test\\"));//设置当前进程的工作路径

版权声明:本文为phd17621680432原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。