2

我在 C++ 中有以下方法:

如果文件夹已经存在,屏幕上会显示正确的消息。但是,如果文件夹不存在,则屏幕上不显示任何内容,即不执行 case NULL 标识的部分。我怎么解决这个问题?

换句话说,如果文件夹不存在,我怎样才能让 case NULL 之后的代码运行?

4

2 回答 2

2

首先,如果文件夹不存在,CreateDirectory()可能会成功并返回一个非零值,因此if条件将返回false,您将永远无法到达该switch语句。

其次,GetLastError()正如所宣传的那样:它返回最后一个错误。如果CreateDirectory()没有引发错误,它将返回任何其他函数设置的最后一个错误。检查NULL不是很有用。

于 2012-11-07T10:56:33.527 回答
1

规范说只要 CreateDirectory 成功,返回值就是非零。

创建目录

那么为什么不使用if 子句的else来打印它

最多可以使用开关中的默认值进行打印

“发生了一些错误”。

由于 switch 仅在发生错误时执行

于 2012-11-07T10:54:56.907 回答