BOOL COperateFile::CreateTempFolder(char *lpTempFolder)
{
char lpTempFolderBuffer[MAX_PATH] = "\0";
SHGetSpecialFolderPath(NULL,lpTempFolderBuffer,CSIDL_COMMON_DOCUMENTS,TRUE);
if (!IsEndWithBackslash(lpTempFolderBuffer))
{
strcat(lpTempFolderBuffer,"\\");
}
strcat(lpTempFolderBuffer,_T("TempTest"));
//create multiple level folder
BOOL bOK = CreateMultipleLevelDirectory(lpTempFolderBuffer);
if (bOK)
{
strcpy(lpTempFolder,lpTempFolderBuffer);
}
return TRUE;
}
BOOL COperateFile::CreateMultipleLevelDirectory( char * lpMultipleFolder )
{
char lpTempFolder[MAX_PATH] = "\0";
char lpDir[MAX_PATH] = "\0";
strcpy(lpDir,lpMultipleFolder);
if (!strcmp(lpDir,"\0"))
{
return FALSE;
}
if (IsEndWithBackslash(lpDir))
{
strcpy(lpDir + strlen(lpDir) - 1 ,"\0");
}
while(strlen(lpTempFolder) < strlen(lpDir))
{
char lpTempDir[MAX_PATH] = "\0";
strcpy(lpTempDir,lpDir);
char* lpTemp = strchr(lpTempDir + strlen(lpTempFolder),'\\');
if (lpTemp)
{
strcpy(lpTemp + 1,"\0");
}
if (!PathFileExists(lpTempDir))
{
BOOL bOK = CreateDirectory(lpTempDir,NULL);
if (!bOK)
{
char lpMsg[MAX_PATH] = "\0";
sprintf(lpMsg,_T("Fail to create directory : %s"),lpTempDir);
OutputDebugString(lpMsg);
}
}
strcpy(lpTempFolder,lpTempDir);
}
return TRUE;
}
BOOL COperateFile::IsEndWithBackslash( char* lpFolder )
{
if (!strcmp(lpFolder,"\0"))
{
return FALSE;
}
int nsize = strlen(lpFolder);
if (!strcmp((lpFolder + nsize -1),"\\"))
{
return TRUE;
}
return FALSE;
}新建临时文件夹,新建多级目录
最新推荐文章于 2026-04-03 09:19:32 发布
本文详细介绍了如何使用C语言实现创建临时文件夹的功能,包括获取特定目录、检查路径结束符并创建多级目录的过程。

455

被折叠的 条评论
为什么被折叠?



