Windows API一日一练(51)CreateDirectory和RemoveDirectory函数

在信息爆炸的年代里,把各种信息分类已经是一种非常必要的功能,比如把股票行情数据保存到硬盘里,就需要分开几个目录保存。比如你写 LOG 到硬盘时,也需要分成几个目录来保存,这样让维护人员很好地找到出错的信息,或者有用的信息。像我在开发银行的信用卡系统时,就需要把所有通过网络传送的数据全部生成文本文件保存到当日的目录里,也就是说每天都需要创建一个目录,把所有交易的数据生成 LOG 保存进去。那么面对这样的需求,你是怎么样去创建目录的呢?这就需要使用到 Windows API 函数 CreateDirectory 创建目录,当然目录过多时也需要调用函数 RemoveDirectory 来删除不需要的目录,然而函数 RemoveDirectory 只能删除空的目录,也就是目录下没有文件和子目录才能删除。
 
函数 CreateDirectory RemoveDirectory 声明如下:
 
WINBASEAPI
BOOL
WINAPI
CreateDirectoryA(
    __in     LPCSTR lpPathName,
    __in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes
    );
WINBASEAPI
BOOL
WINAPI
CreateDirectoryW(
    __in     LPCWSTR lpPathName,
    __in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes
    );
#ifdef UNICODE
#define CreateDirectory CreateDirectoryW
#else
#define CreateDirectory CreateDirectoryA
#endif // !UNICODE
 
WINBASEAPI
BOOL
WINAPI
RemoveDirectoryA(
    __in LPCSTR lpPathName
    );
WINBASEAPI
BOOL
WINAPI
RemoveDirectoryW(
    __in LPCWSTR lpPathName
    );
#ifdef UNICODE
#define RemoveDirectory RemoveDirectoryW
#else
#define RemoveDirectory RemoveDirectoryA
#endif // !UNICODE
 
lpPathName 是目录的路径。
lpSecurityAttributes 是目录的安全属性。
返回值 是执行是否成功。
 
调用函数的例子如下:
#001 // 创建目录。
#002               // 蔡军生  2007/10/16 QQ:9073204 深圳
#003               std::wstring strDir(_T("c://log"));
#004               if (!CreateDirectory(strDir.c_str(),NULL))
#005               {
#006                    OutputDebugString(_T(" 创建目录不成功 /r/n"));                        
#007  
#008               }
#009               else
#010               {
#011                    // 删除空目录。
#012                    RemoveDirectory(strDir.c_str());
#013               }
#014 
 
 
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值