Closed. This question needs details or clarity。它当前不接受答案。












想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。

6年前关闭。



Improve this question




根据MSDN,应将C:tmp.txt的路径视为相对路径,但PathIsRelative()返回FALSE而不是TRUE

这是一个错误吗?还是我在某个地方弄错了?

最佳答案

这取决于相对。像C:tmp.txt这样的路径非常特殊。它相对于驱动器C上的当前目录。另一方面,tmp.txt相对于进程当前目录。实际上,每个驱动器的当前目录也很特殊,它是通过一些奇怪的环境变量实现的,纯粹是为了保持与DOS的兼容性。有关此相当神秘的主题的更多信息,请参见Raymond Chen的文章:Why does each drive have its own current directory?

相对于什么是相对路径,PathIsRelative似乎对您的看法不同。 PathIsRelative函数不会将相对于指定驱动器上的工作目录的路径视为相对路径。因此PathIsRelative("C:tmp.txt")返回FALSE。如果您想要一个将这种路径视为相对路径的函数,则可能必须自己编写。手动解析路径以检测这种情况非常容易。

关于c++ - 它是具有PathIsRelative函数的WinAPI错误吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26099361/

10-14 21:17