我有这个代码:
std::error_code errc;
if (!std::filesystem::remove(entry.path(), errc)) {
//check if it failed cause the file does not exist
}
基本上我正在尝试转换 C 代码:
if (remove(e.entry.name) != 0) {
if (errno == EEXIST)
...
}
我也对此感到困惑,但我认为这就是它的解释方式:
如果文件不存在,
error_code
的std::filesystem::remove()
签名将返回false
,或者如果系统出现错误则返回。我们检测 false
是否由丢失文件导致的方法是将
error_code
与其默认值进行比较。所以你的代码看起来像这样:
std::error_code errc;
if (!std::filesystem::remove(entry.path(), errc)) {
if (!errc)
{
// The file did not exist
}
else
{
// There was another error, check errc for details
}
}