创build新的文件夹,如果它们不存在fopen

我有一个C ++程序,为用户inputfopen以启动文件写入。 有人可以帮我find一个函数,它将返回一个FILE*并使用Windows特定版本的mkdir为了创buildfopen的文件夹结构,永远不会在指定位置打开一个新文件,因为其中一个文件夹不存在。 谢谢一堆!

Solutions Collecting From Web of "创build新的文件夹,如果它们不存在fopen"

在Windows API中有一个方法MakeSureDirectoryPathExists,在dbghelp.h中声明。 它递归地创建目录,所以我想这就是你以后的。 然而,没有办法确保这个“永不失败”,因为它也取决于特权等,如果你有写权限的某个目录。

编辑:这是一些虚拟示例代码; 它使用GetProcAddress,虽然我找不到dbghelp头,当我写它。

 typedef BOOL (WINAPI * CreateDirFun ) ( __in PCSTR DirPath ); HMODULE h = LoadLibrary( "dbghelp.dll" ); CreateDirFun pFun = (CreateDirFun) GetProcAddress( h, "MakeSureDirectoryPathExists" ); (*m_pFun)( psPath ) ) CreateDirectory( psPath ); FreeLibrary( h );