【问题标题】:How to determine if 2 paths reference the same file in portable C++如何确定 2 个路径是否在可移植 C++ 中引用同一个文件
【发布时间】:2010-11-29 09:59:18
【问题描述】:

我想知道是否有一种便携式方法来确定两个不同的路径是否实际上引用了同一个文件。

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

AFAIK,fstream 不适合这份工作。

【问题讨论】:

标签: c++ reference portability filepath


【解决方案1】:

文件系统库

从 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,用于保存任何可能的错误。

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

【讨论】:

  • 我需要澄清一下:为什么接受的答案可以?在我看来,它与我的旧版本基本相同:仅一个链接......
  • @Stypox:它和你以前的问题一样。感谢您编辑此内容!
猜你喜欢
  • 2010-09-29
  • 2013-03-17
  • 2010-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
相关资源
最近更新 更多