Windows中绝对路径的类型

时间:2014-06-10 23:49:25

标签: c++ windows winapi filesystems ntfs

好奇的是这样的路径(在Windows中)是什么意思?

"\Users\Name\Desktop\1\dest dir1"

我知道它是一个绝对路径,指的是驱动器的根。

第二个问题,是否有一个API可以将它与“真正的”绝对路径区分开来?路径如此:

"C:\Users\Name\Desktop\1\dest dir1"

PS。我显然一般都在问这个样本路径。

2 个答案:

答案 0 :(得分:0)

从我到目前为止所看到的情况来看,它应该是这样的(没有WinAPI),对吗?

BOOL IsAbsoluteToDrivePath(LPCTSTR pszPath)
{
    //Checks if the path is absolute to drive
    //RETURN:
    //      = TRUE if yes, it is an absolute to the drive path
    BOOL bRes = FALSE;

    if(pszPath &&
        pszPath[0])
    {
        //Check first char to be a slash
        //INFO: Proved experimentally that / and \ may be treated equally...
        if(pszPath[0] == L'\\' ||
            pszPath[0] == L'/')
        {
            //Do we have a 2nd char?
            if(pszPath[1])
            {
                //Second char should not be a slash
                if(pszPath[1] != L'\\' &&
                    pszPath[1] != L'/')
                {
                    //Not a slash, then it's an absolute path
                    bRes = TRUE;
                }
            }
            else
            {
                //This is a root path (i.e. "\")
                bRes = TRUE;
            }
        }
    }

    return bRes;
}

答案 1 :(得分:-1)

你错了, 在Windows中,绝对路径始终以驱动器的字母或服务器名称开头 而相对路径是从您正在使用的当前位置派生的路径,它以“\”开头或没有它。

如果您使用“绝对路径”,它将在您的工作目录中寻找“\ Users \ Name \ Desktop \ 1 \ dest dir1”

还: Detect whether path is absolute or relative

PathIsRelative