如何确定2个路径是否在可移植C ++中引用同一文件

时间:2009-09-18 08:25:29

标签: c++ reference portability filepath

我想知道是否有可移植方式来确定2个不同的路径是否实际引用了同一个文件。

我已阅读this thread但是特定于Windows。

AFAIK, fstream 不适合这项工作。

1 个答案:

答案 0 :(得分:2)

文件系统库

从C ++ 17开始,您可以使用标准的<filesystem>库。您要查找的功能是equivalent,位于命名空间std::filesystem下:

bool std::filesystem::equivalent(const std::filesystem::path& p1, const filesystem::path& p2 );

documentation进行总结:此函数采用两个路径作为参数,如果它们引用相同的文件或目录,则返回true,否则返回false。还有一个noexcept重载,它带有第三个参数:std::error_code,用于保存任何可能的错误。

有关更多信息,请查看my answer上的thread you mentioned