#include <string>
#include <Windows.h>
#include <Shlwapi.h>
#pragma comment( lib, "Shlwapi.lib" )
#include <strsafe.h>
bool CreateMultipleDirectory( LPCTSTR pDirectory )
{
if( NULL == pDirectory )
{
return false;
}
//目录或文件已存在
if( PathFileExists( pDirectory ) )
{
return true;
}
TCHAR Directory[ MAX_PATH ];
StringCbCopy( Directory, sizeof( Directory ), pDirectory );
//判断是否是文件路径( 默认有扩展名被认为是文件,无扩展名文件使用std::fstream来判断是否能打开即可判断,本例中不讨论 )
if( 0 != StrCmp( TEXT( "" ), PathFindExtension( Directory ) ) )
{
//去掉文件名
PathRemoveFileSpec( Directory );
//文件不存在但目录存在
if( PathFileExists( Directory ) )
{
return true;
}
}
//去掉前缀
LPCTSTR i = Directory;
while( ( TEXT( '.' ) == *i || TEXT( '\\' ) == *i ) )
{
++i;
}
//不用创建新文件夹的当前目录( .\\ )
if( 0 == i[ 0 ] )
{
return true;
}
std::wstring Temp;
for( ; *i != 0; ++i )
{
C++Windows下创建多级目录
最新推荐文章于 2024-08-16 16:51:26 发布
该博客介绍了如何使用C++在Windows环境下创建多级目录。通过包含`<Windows.h>`和`<Shlwapi.h>`库,并使用`CreateMultipleDirectory`函数,可以检查和创建任意深度的目录结构。示例代码展示了如何为不同路径创建目录,如`a\b\c\d\`和`1\2\3.txt`。
摘要由CSDN通过智能技术生成