我有一个C ++程序,它接受fopen
的用户输入以启动文件写入。有人可以帮我找到一个函数,该函数将返回FILE*
并使用Windows {x}的特定版本来创建mkdir
的文件夹结构,以便永远不会打开新文件指定的位置,因为其中一个文件夹不存在。非常感谢!
答案 0 :(得分:2)
在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 );