我想使用该std::filesystem::remove()
函数删除一个文件,如果该文件不存在则给出错误。如下所示:
std::error_code errorCode;
if (!std::filesystem::remove("<some file path>", errorCode))
{
std::cout << "Could not delete file because " << errorCode.message();
}
然而,如果该文件不存在,就会出现以下消息Could not delete file because unknown error
。
我的问题是:为什么这没有告诉我该文件不存在?
我对 cppreference 的文档的解释是
error_code
如果文件不存在,则该函数的非版本remove
将返回,false
如果存在其他错误,则抛出异常。- 版本
error_code
遇到任何错误都会返回 false,并将原因存储在 中error_code
。它从不抛出异常。
鉴于文件不存在时错误代码只会显示“未知错误”,似乎此版本提供的信息比非error_code
版本少?或者我误解了什么?
我在 Windows 11 上,使用 Visual Studio 2022 版本 17.11.2。