gpt4 book ai didi

c++ - C 或 C++ 或 WinApi 中是否有任何函数可以创建目录,包括指定路径中所有不存在的目录?

转载 作者:太空宇宙 更新时间:2023-11-04 06:01:18 24 4
gpt4 key购买 nike

我需要一个c#的类比

Directory.CreateDirectory("d:\\asd\\dsa\\123");

这将创建所有目录,即使磁盘 D 完全是空的,没有任何目录。

接下来我阅读了有关 WinApi CreateDirectory 的内容:
“ERROR_PATH_NOT_FOUND - 一个或多个中间目录不存在;此函数只会在路径中创建最终目录。”
所以这不是我要找的..

还有其他方法可以做我想做的事吗?

最佳答案

您是否尝试使用 mkdir() 函数?另一种使用方式:

  1. boost filesystem : 支持标准 MAX_PATH 大小 260。

    const char dir_path[] = "c:\\temp\\cplusplus";

    boost::filesystem::path dir(dir_path);
    if(boost::filesystem::create_directory(dir)) {
    std::cout << "Success" << "\n";
    }
  2. SHCreateDirectoryEx function适用于 Win XP(SP2) 和更高。但是,它被限制为 247 个字符,小于其他 Win32 API 文件系统函数支持的标准 MAX_PATH (260)

  3. CreateDirectory function :路径的默认字符串大小限制为 248 个字符。此限制与 CreateDirectory 函数如何解析路径有关。要将此限制扩展到 32,767 宽字符,请调用该函数的 Unicode 版本并在路径前添加 "\\?\" 前缀。

注意: 因为大多数 Boost.Filesystem 操作函数只是将类路径对象的内容传递给 Windows API,所以它们确实使用扩展长度前缀。但有些将无法工作,因为 Windows 施加的限制。 -- Boost 警告。

关于c++ - C 或 C++ 或 WinApi 中是否有任何函数可以创建目录,包括指定路径中所有不存在的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19188087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com