Я использую Boost 1.52, когда я пытаюсь получить файл с сетевого диска, с которого у меня нет прав на чтение. Я получаю исключение после использования boost::filesystem::exists(fileName)
Есть ли работа вокруг приятнее, чем просто делать try, catch
в каждом месте?
Я переключился на мой старый код сейчас:
bool FileExists(const char* fileName)
{
struct stat my_stat;
return (stat(fileName, &my_stat) == 0);
}
//boost Exists throws exception if there are no permissions for share folder
bool FileExists(const std::string& fileName)
{
return FileExists(fileName.c_str());
}
Использовать перегрузка это не бросает.
bool exists(const path& p, system::error_code& ec) noexcept;
Однако вы захотите проверить выходной параметр, так что это может быть больше работы, чем перехват исключения. Это зависит от того, что вы пытаетесь достичь.
Других решений пока нет …