1 创建单级目录CreateDirectory
创建一个新目录。如果底层文件系统支持文件和目录的安全,则该函数将指定的安全描述符应用于新目录。要指定模板目录,请使用 CreateDirectoryEx函数。
BOOL CreateDirectoryA(
LPCSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
1.1 参数介绍
(1)lpPathName:要创建的目录的路径。
(2)指向SECURITY_ATTRIBUTES 结构的指针。该结构的lpSecurityDescriptor成员为新目录指定了一个安全描述符。如果lpSecurityAttributes为 NULL,则目录获取默认安全描述符。
1.2 返回值
如果函数成功,则返回值非零。
如果函数失败,则返回值为零。要获取扩展错误信息,请调用 GetLastError。可能的错误包括以下内容。
返回码 | 描述 |
---|---|
ERROR_ALREADY_EXISTS | 指定的目录已经存在。 |
ERROR_PATH_NOT_FOUND | 一个或多个中间目录不存在;此函数只会在路径中创建最终目录。 |
2 创建多级目录 MakeSureDirectoryPathExists
从根开始创建指定路径中的所有目录。
BOOL IMAGEAPI MakeSureDirectoryPathExists(
PCSTR DirPath
);
2.1 参数介绍
(1)DirPath:有效的路径名。如果路径的最后一部分是目录,而不是文件名,则字符串必须以反斜杠 (\) 字符结尾。
2.2 返回值
如果函数成功,则返回值为TRUE。
如果函数失败,则返回值为FALSE。要检索扩展错误信息,请调用GetLastError。
3 删除目录RemoveDirectory
删除现有的空目录。
BOOL RemoveDirectoryA(
LPCSTR lpPathName
);
3.1 参数介绍
(1)lpPathName:要删除的目录的路径。此路径必须指定一个空目录,并且调用进程必须对该目录具有删除权限。
3.2 返回值
如果函数成功,则返回值非零。
如果函数失败,则返回值为零。要获取扩展错误信息,请调用 GetLastError。
4 函数应用
#include<windows.h>
#include<tchar.h>
#include <iostream>
#include<ImageHlp.h>
#pragma comment(lib,"imagehlp.lib")
using namespace std;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdline, int nShowCmd)
{
//创建单级目录
BOOL bRet = CreateDirectory("E://Project//10_test//test", NULL);
if(FALSE == bRet)
{
MessageBox(NULL, "创建目录失败", "Tip", MB_OK);
return 1;
}
else
{
MessageBox(NULL, "创建目录成功", "Tip", MB_OK);
}
//创建多级目录
bRet = MakeSureDirectoryPathExists("E://Project//10_test//test2//test2_1//test2_1_1");
if(FALSE == bRet)
{
MessageBox(NULL, "创建目录失败", "Tip", MB_OK);
return 2;
}
else
{
MessageBox(NULL, "创建目录成功", "Tip", MB_OK);
}
//删除目录 仅当被删除的目录下面为空时才能删除成功
bRet = RemoveDirectory("E://Project//10_test//test");
if(FALSE == bRet)
{
MessageBox(NULL, "删除单级失败", "Tip", MB_OK);
return 3;
}
else
{
MessageBox(NULL, "删除目录成功", "Tip", MB_OK);
}
return 0;
}