我在通过调用GetModuleFileName(NULL,,)
获取的可执行文件的路径上调用了GetVolumePathName API:
TCHAR buffVolPath[MAX_PATH];
if(GetVolumePathName(buffThisPath, buffVolPath, MAX_PATH))
{
_tprintf(L"This volume path=%s\n", buffVolPath);
}
如果我从本地路径"D:\Folder\MyProgram.exe"
运行它,我会得到"D:\"
。
但如果我从重定向的文件夹"\\SRVR-A\Home\userName\Documents\MyProgram.exe"
运行它,我会得到"\\SRVR-A\Home\userName\Documents\MyProgram.exe\"
。
为什么我会得到第二个结果?
编辑:事实证明,只有在以下情况下才会发生这种情况。当我将我的可执行文件复制到"\\SRVR-A\Home\userName\Documents"
文件夹并在之后立即运行它。然后我得到了那个奇怪的结果。但是,如果我等待一会儿,结果会变为"\\SRVR-A\Home\"
。我在Windows 7 Pro,SP1 32位客户端上运行此测试。