我对这段代码的行为感到困惑。
const char* file_name = "/ /";
auto attributes = GetFileAttributes(TEXT(file_name)); // same result without TEXT macro
if (attributes == INVALID_FILE_ATTRIBUTES)
{
//error
}
else if (attributes == FILE_ATTRIBUTE_DIRECTORY)
{
//directory
}
这是文件或目录的无效名称,因此我希望它返回 INVALID_FILE_ATTRIBUTES。 用运行在win8上的VS2015编译。 也许这是因为前向字符?也许有一个 winAPI 函数来验证输入?
谢谢
最佳答案
"//"
是完全有效的文件名。正斜杠 /
被解释为路径分隔符。
因此,在我们信任系统的基础上,合乎逻辑的结论是,在你运行这段代码的机器上,当前工作卷的根目录下有一个名为""
的目录.
关于c++ - GetFileAttributes 为无效输入返回 FILE_ATTRIBUTE_DIRECTORY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37874067/