MFC用CreateDirectory创建文件目录

本文详细介绍了Windows API函数CreateDirectory的功能及使用方法。该函数用于创建单级目录,并且需要逐级创建多级目录。文章还提供了如何判断目录是否存在以及如何递进创建多级目录的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:http://blog.csdn.net/eickandy/article/details/47775863


CreateDirectory这个函数的作用是创建一个新的目录。如果底层文件系统支持文件和目录上的安全描述,该功能可将指定的安全描述到新的目录。

函数原型:

[cpp]  view plain  copy
  1. BOOL CreateDirectory(  
  2.   LPCTSTR lpPathName,  
  3.   LPSECURITY_ATTRIBUTES lpSecurityAttributes  
  4. );  

参数:

    pPathName:长指针,指向一个空结束的字符串,该字符串指定要创建的目录的路径。有一个默认的字符串大小限制为MAX_PATH字符的路径。此限制是关系到这个函数是如何解析路径。字符串的长度不超过MAX_PATH。

    lpSecurityAttributes:忽略,一般设置为NULL。

返回值:
    非零表示成功,零表示失败。若想获得更多的错误信息,调用GetLastError函数。

备注:
    这个函数不是递归的。它可以在一个路径中创建唯一的最终目录。也就是说,如果父目录或中间目录不存在,该函数将失败并显示错误消息ERROR_PATH_NOT_FOUND。

    一些文件系统,如NTFS文件系统,支持压缩或个别文件和目录加密。上卷格式化为这样的文件系统,一个新的目录继承父目录的压缩和加密属性。

--->>>

    从备注可知,该函数只能创建一级目录,当根目录或者中间目录不存在时,该函数将不起作用。所以假如我们要创建二级以上目录时,应该分开来一步步创建。

例如:我们要创建:D:\\一级文件夹\\二级文件夹\\...

[cpp]  view plain  copy
  1. CString str = "D:\\一级文件夹";  
  2. CreateDirectory(str, NULL);  
  3. str += "\\二级文件夹";  
  4. CreateDirectory(str, NULL);  
以此类推。

在创建新的目录之前,我们也可以先判断该目录是否已经存在,例如:

[cpp]  view plain  copy
  1. CString str = "D:\\一级文件夹";  
  2. if (!PathIsDirectory(str))  
  3. {  
  4.     ::CreateDirectory(str, NULL);//创建目录,已有的话不影响  
  5. }  
  6. str += "\\二级文件夹";  
  7. if (!PathIsDirectory(str))  
  8. {  
  9.     ::CreateDirectory(str, NULL);//创建目录,已有的话不影响  
  10. }  
在调用PathIsDirectory()函数时,需要包含以下头文件与库函数:

[cpp]  view plain  copy
  1. #include "shlwapi.h"  
  2. #pragma comment(lib,"shlwapi.lib")  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值