c ++如何从路径创建目录

cla*_*amp 9 c++ directory

在给出这样的路径时创建目录的简便方法是什么:"\ server\foo\bar \"

请注意,中间目录可能不存在.

CreateDirectory和mkdir似乎只创建目录的最后一部分,否则会给出错误.

平台是windows,MSVC编译器.

谢谢!

gnu*_*nud 23

如果你可以使用外部库,我会看看boost :: filesystem

#include <boost/filesystem.hpp>
namespace fs=boost::filesystem;

int main(int argc, char** argv)
{
    fs::create_directories("/some/path");
}
Run Code Online (Sandbox Code Playgroud)


Fer*_*cio 6

SHCreateDirectoryEx()可以做到这一点.它可以在XP SP2和更新版本的Windows上使用.

  • 不推荐使用:"[此功能可通过Windows XP Service Pack 2(SP2)和Windows Server 2003获得.在后续版本的Windows中可能会更改或不可用." (3认同)
  • @Technophile - 根据MSDN,在XP SP2和Server 2003之后,不推荐使用`SHCreateDirectory`(http://msdn.microsoft.com/en-us/library/bb762130(v=vs.85).aspx).它没有提到不推荐使用`SHCreateDirectoryEx`. (2认同)
  • 目前似乎SHCreateDirectory**Ex**也被弃用:msdn.microsoft.com/en-us/library/bb762131(v=vs.85).aspx (2认同)