1

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

我已阅读此线程,但它是特定于 Windows 的。

AFAIK,fstream不适合这份工作。

4

1 回答 1

3

文件系统库

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

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

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

有关更多信息,请查看我在您提到的线程上的回答

于 2018-08-27T17:26:56.463 回答