我在 C++ 中有以下方法:
如果文件夹已经存在,屏幕上会显示正确的消息。但是,如果文件夹不存在,则屏幕上不显示任何内容,即不执行 case NULL 标识的部分。我怎么解决这个问题?
换句话说,如果文件夹不存在,我怎样才能让 case NULL 之后的代码运行?
首先,如果文件夹不存在,CreateDirectory()
可能会成功并返回一个非零值,因此if
条件将返回false
,您将永远无法到达该switch
语句。
其次,GetLastError()
正如所宣传的那样:它返回最后一个错误。如果CreateDirectory()
没有引发错误,它将返回任何其他函数设置的最后一个错误。检查NULL
不是很有用。
规范说只要 CreateDirectory 成功,返回值就是非零。
那么为什么不使用if 子句的else来打印它
最多可以使用开关中的默认值进行打印
“发生了一些错误”。
由于 switch 仅在发生错误时执行