创建目录(单个目录和多级子目录)方法

1. CreateDirectory 创建文件夹(只能创建一级目录) CC++  

函数原型:

CreateDirectory(
LPCTSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
);

简介:

     CreateDirectory 是Win32API函数,用于创建文件夹。
     参数 lpPathName 表示路径
    参数 lpSecurityAttributes 表示安全属性

============================================================================

 1 //例子(程序段):
 2 
 3         //设置属性
 4         SECURITY_ATTRIBUTES attribute;
 5         attribute.nLength = sizeof(attribute);
 6         attribute.lpSecurityDescriptor = NULL;
 7         attribute.bInheritHandle = FALSE;
 8         //创建
 9         if(CreateDirectoryA(“d:\yanlei”,&attribute) == 0)
10             AfxMessageBox("false");

 2. SHCreateDirectoryEx 创建多级目录

1.介绍
SHCreateDirectoryEx是window flatform下建立文件夹的函数,他的功能比CreateDirectory(Ex)大。如果创建文件夹目录有的中间目录不存在,SHCreateDirectoryEx可以建立,而CreateDirectory(Ex)则做不到这一点。
2.使用方法
要想使用SHCreateDirectoryEx,必须先安装windows2000 floatform SDK,或者从已经安装的些开发包的系统中,把需要的文件考过来,这样比较麻烦,所以还要去微软的网站上下载一个开发包安装为好。些函数最低的系统要求为windows2000和window Me.

假设的Flatform SDK安装在C:PROGRAM FILESMICROSOFT PLATFORM SDK目录下
在VC6中编译程序时(其他的编译工具遇到情况,用类似的方法解决)
如果出现这种错误:
error C2065: \'SHCreateDirectoryEx\' : undeclared identifier
则打开工具栏Project->Setting.s..
出现配置窗口
选择C/C++
Category选择Preprocessor
在Additional include directories
添加C:PROGRAM FILESMICROSOFT PLATFORM SDKINCLUDE

设置完成后
在程序中添加引入库
#pragma comment(lib, "C:\Program Files\Microsoft Platform SDK\Lib\shell32.lib")
这样应该可以成功完成编译了。
3.函数使用
int SHCreateDirectoryEx(         
    HWND hwnd,
    LPCTSTR pszPath,
    SECURITY_ATTRIBUTES *psa
);
hwnd是窗口句柄,可以为NULL.
psa是安全属性设置项,可以为NULL.
pszPath要注意,这个路径必须是绝对路径. 比如c: est, d:hello, 不能写成test,也不能写成. est这样的相对路径。

原文地址:https://www.cnblogs.com/MATU/p/3798813.html