绝对路径转相对路径
BOOL RelativePathTo(
Out_writes_z(MAX_PATH) char* pszPath,
In_z const char* pszFrom,
In DWORD dwAttrFrom,
In_z const char* pszTo,
In DWORD dwAttrTo)
参数 pszPath 为结果路径;pszFrom 为当前路径;dwAttrFrom 为当前路径的属性,文件或目录;pszTo 为需转换的绝对路径;dwAttrTo 为需转换路径的属性,文件或目录。
头文件 #include <atlpath.h>
void absolutionPathtoRelative(std::string filenames)
{
char curPath[1024];
_getcwd(curPath, 1024);//获取当前.exe所在路径
DWORD curPathDWORD = GetFileAttributes(curPath);//获取指定路径属性
if (!ATL::ATLPath::IsRelative(filenames.c_str()))
{
char relativeFile[1024];
DWORD fileDWORD = GetFileAttributes(filenames.c_str());
ATL::ATLPath::RelativePathTo(relativeFile, curPath, curPathDWORD, filenames.c_str(), fileDWORD);
filenames = relativeFile;
}
}