【c++】【windows】创建多层文件夹

代码

/**
 * 创建目录
 * @param directoryPath 目录路径
 */
void CreateDir(const std::string& directoryPath)
{
    
    
    std::string tmpDirPath;
    for (uint32_t i = 0; i < directoryPath.size(); ++i)
    {
    
    
        tmpDirPath.push_back(directoryPath[i]);

        // 检查是否需要创建目录
        if (tmpDirPath[i] == '/')
        {
    
    
            // 检查目录是否已存在
            if (_access(tmpDirPath.c_str(), 0) != 0)
            {
    
    
                // 创建目录
                int32_t ret = _mkdir(tmpDirPath.c_str());
                if (ret != 0)
                {
    
    
                    // 创建目录失败,退出函数
                    return;
                }
            }
        }
    }

    // 创建完整目录路径
    _mkdir(tmpDirPath.c_str());
}

解释

这段代码创建一个名为 CreateDir 的函数,用于创建一个目录。该函数接受一个字符串类型的目录路径作为参数,并逐级检查并创建目录,直到到达传递的完整目录路径为止。具体来说,该函数的实现分为以下步骤:

  1. 创建一个名为 tmpDirPath 的字符串来保存每一级的目录路径。
  2. 使用 for 循环迭代传入的目录路径,将每一级的路径添加到 tmpDirPath 中。
  3. 在每一级路径添加完成后,检查最后一个字符是否为目录分隔符 ‘/’。
  4. 如果是,使用 _access 函数检查该目录是否已存在,如果不存在则使用 _mkdir 函数创建该目录。
  5. 如果在任何一级目录上无法创建目录,则退出函数。
  6. 循环结束后,创建完整的目录路径。
    该函数使用了 _access 和 _mkdir 函数来检查和创建目录。_access 函数用于检查目录是否存在,如果返回 0,则目录存在,如果返回 -1,则目录不存在。_mkdir 函数用于创建目录。如果函数返回 0,则目录创建成功,如果返回 -1,则创建目录失败。在本代码中,如果 _mkdir 函数返回错误,函数将立即退出并不会尝试创建其余的目录。

猜你喜欢

转载自blog.csdn.net/weixin_41093846/article/details/129793712