这是 WIN32 自动创建多级子目录的 C++ 封装类,用法简单。

        封装没有采用类的静态函数方式,而是在构造函数里面直接完成工作。没什么具体的原因,只是当时做成这样了,这么多年就一直这样用了。

 

#ifndef __HSS_AUTO_CREATE_FOLDER_HSS__
#define __HSS_AUTO_CREATE_FOLDER_HSS__ #include <shlwapi.h> #pragma comment(lib, "shlwapi.lib") /**************************************************************************************************\
自动创建目录
方法: char* pszFile..
char* pszPath... auto_folder af(pszFile); //自动建立文件pszFile所在的目录
auto_folder af(pszPath); //自动建立目录pszPath

  如下用法,均创建目录 c:\\tmp\\sel
  auto_folder af("C:\\temp\\sel");
  auto_folder af("C:\\temp\\sel\\1.jpg"); 
  auto_folder af("C:\\temp\\sel\\"); 
  参数如何区分目录和文件:
如果最后有\\肯定是目录
如果最后又后缀".",则肯定是文件
如果最后没有\\,也没有后缀'.",则认为是路径
\**************************************************************************************************/ class auto_folder
{
public:
auto_folder(LPCTSTR pszPath)
{
//如果后面有\\则是路径,如果没有,但有后缀,则是文件,无后缀则也是路径
char szPath[_MAX_PATH] = {0};
strncpy(szPath, pszPath,_MAX_PATH);
szPath[_MAX_PATH-1] = 0; char* pdot = strrchr(szPath, '.');
char* psp = strrchr(szPath, '\\');
if (psp && pdot && pdot > psp)
{
//文件方式,去掉文件名
psp[0] = 0;
}
else
{
//缺省是个目录,这个地方可能吧没有后缀的文件当作目录
} PathAddBackslash(szPath); if (PathIsDirectory(szPath))
return; psp = strchr(szPath, '\\');
while(psp)
{
*psp = 0;
if (!PathIsDirectory(szPath))
{
if (!CreateDirectory(szPath, 0))
return;
}
*psp = '\\';
psp = strchr(psp + 1, '\\');
}
};
}; #endif

自动创建WIN32下多级子目录的C++封装类的更多相关文章

  1. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  2. md详解和rd详解:一次性创建多个目录和多级子目录

    md 命令: 官方解释: E:\ABC>md /? 创建目录. MKDIR [drive:]path MD [drive:]path 如果命令扩展被启用,MKDIR 会如下改变: 如果需要,MK ...

  3. windows下怎样使用md命令一次建立多级子目录

    在Windows系统中一次只能够创建一个子目录,在命令提示符窗口则可以一次性创建多个子目录,例如如果想在f盘创建多级子目录,则md 23\13\65\45,后面的数字随便都可以.如果想一次性删除多级目 ...

  4. java自动创建多级目录

    // 创建文件上传路径 public static void mkdir(String path) { File fd = null; try { fd = new File(path); if (! ...

  5. platform型设备在/dev目录下自动创建设备节点的分析【转】

    转自:http://blog.csdn.net/rockrockwu/article/details/7357648 系统启动过程中platform设备.驱动注册完毕,为什么在/dev目录下就自动创建 ...

  6. linux下自动创建设备文件节点---class

    在驱动模块初始化函数中实现设备节点的自动创建 我们在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的 ...

  7. CodeIgniter 让控制器可以支持多级子目录的 Router 类库

    MY_Router.php 放到 system/application/libraries 目录下,就可以让 CI 的控制器支持多级子目录了.这样,你就可以在 system/application/c ...

  8. 怎样使用md命令一次建立多级子目录

    https://jingyan.baidu.com/article/37bce2be30cae21002f3a224.html 点击开始,运行,在运行窗口中输入“cmd”.   打开cmd窗口之后,用 ...

  9. win32下开发hadoop

    转载自:http://my.oschina.net/muou/blog/408543[木偶:Windows下使用Hadoop2.6.0-ecli­p­s­e­-­p­­lugin插件] 对于一些细节地 ...

随机推荐

  1. HTML5+CSS3实现图片可倾斜摆放的动画相册效果

    先看看效果:其中鼠标悬浮在图片上会有动态效果图 直接上代码: css文件 @CHARSET "UTF-8"; *{ padding:0px; margin:0px; } div{ ...

  2. Azure Application Gateway (1) 入门

    <Windows Azure Platform 系列文章目录> 请读者注意,Azure Application Gateway在ASM模式下,只能通过PowerShell创建 具体可以参考 ...

  3. mysql小数格式化正确方法

    用到小数格式化,mysql了解很肤浅,只会简单的sql语句,于是百度,发现大家都是转载同一个文章,好无语. 而且,结果验证还是不正确,查了官方api,终于写出来了. 另外,还是保存下百度的几个方法: ...

  4. .net 将List序列化成Json字符串

    将List类型转化为Json,是我们平常开发时最常见的了.在使用中,有很多种方法,也可以使用. 第一种 第三方组件:Newtonsoft.Json.dll //转化成Json Newtonsoft.J ...

  5. android Can't bind to local 86XX for debugger

    For some reason eclipse DDMS always gives the error 'Can't bind to local 86XX for debugger' every ti ...

  6. C# 常用加密解密帮助类

    public static class EncryptUtil { #region MD5加密 /// <summary> /// MD5加密 /// </summary> p ...

  7. Android按返回键退出程序但不销毁,程序后台保留

    重写onKeyDown事件即可 @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyE ...

  8. ubuntu下常用命令(一)

    1.查看目录 Ctrl+L 2.在终端下:复制命令:Ctrl + Shift + C 组合键.粘贴命令:Ctrl + Shift + V 组合键. 3.解压 tar xzf flie.tar.gz 4 ...

  9. 使用插件实现一般处理程序导出excel

    string sql = "select * from WJ_ProjectManager where" + WhereString ; DataTable dt = SqlHel ...

  10. GJM : 各大开发游戏引擎

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...