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

问题描述 投票:1回答:1

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

我读过this thread但是特定于Windows。

AFAIK,fstream不适合这项工作。

c++ reference portability filepath
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.