Как определить, ссылаются ли 2 пути на один и тот же файл в портативном C ++ - PullRequest
1 голос
/ 18 сентября 2009

Мне было интересно, есть ли способ portable , чтобы определить, действительно ли два разных пути ссылаются на один и тот же файл.

Я прочитал эту тему , но для Windows.

AFAIK, fstream не подходит для работы.

1 Ответ

2 голосов
/ 27 августа 2018

Библиотека файловой системы

Начиная с 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, в котором сохраняется любая возможная ошибка.

Для получения дополнительной информации посмотрите мой ответ в теме , которую вы упомянули .

...