【问题标题】:C++ - Creating folder methodC++ - 创建文件夹方法
【发布时间】:2012-11-07 10:50:11
【问题描述】:

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

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

也就是说,如果文件夹不存在,如何让case NULL之后的代码运行?

【问题讨论】:

  • 我之前使用过PathIsDirectory(...) 来检查一个目录是否存在,但诚然,它确实会让您面临潜在的竞争条件。

标签: c++ winapi null directory case


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    CreateDirectory

    那么你为什么不使用 elseif 子句 来打印它

    您最多可以在开关中使用 default 进行打印

    “发生了一些错误”。

    因为开关只在出错的情况下执行

    【讨论】:

      猜你喜欢
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 2017-08-11
      相关资源
      最近更新 更多