GetFileAttributes返回FILE_ATTRIBUTE_DIRECTORY以获取无效输入

时间:2016-06-17 05:52:45

标签: c++ winapi

我对这段代码的行为感到困惑。

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函数来验证输入?

感谢

1 个答案:

答案 0 :(得分:4)

"/ /"是完全有效的文件名。正斜杠/被解释为路径分隔符。

因此,在我们信任系统的基础上,逻辑结论是在运行此代码的机器上当前工作卷的根级别有一个名为" "的目录。