#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-04-30 22:35:34 发布