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

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

函数原型:

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

设置完成后
在程序中添加引入库
#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:\test, d:\hello, 不能写成test,也不能写成.\test这样的相对路径。

 

posted @ 2014-06-20 10:37  MATU  阅读(2331)  评论(0编辑  收藏  举报