自动创建WIN32下多级子目录的C++封装类
这是 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++封装类的更多相关文章
- 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 重点: 实现多级子目录的压缩, ...
- md详解和rd详解:一次性创建多个目录和多级子目录
md 命令: 官方解释: E:\ABC>md /? 创建目录. MKDIR [drive:]path MD [drive:]path 如果命令扩展被启用,MKDIR 会如下改变: 如果需要,MK ...
- windows下怎样使用md命令一次建立多级子目录
在Windows系统中一次只能够创建一个子目录,在命令提示符窗口则可以一次性创建多个子目录,例如如果想在f盘创建多级子目录,则md 23\13\65\45,后面的数字随便都可以.如果想一次性删除多级目 ...
- java自动创建多级目录
// 创建文件上传路径 public static void mkdir(String path) { File fd = null; try { fd = new File(path); if (! ...
- platform型设备在/dev目录下自动创建设备节点的分析【转】
转自:http://blog.csdn.net/rockrockwu/article/details/7357648 系统启动过程中platform设备.驱动注册完毕,为什么在/dev目录下就自动创建 ...
- linux下自动创建设备文件节点---class
在驱动模块初始化函数中实现设备节点的自动创建 我们在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的 ...
- CodeIgniter 让控制器可以支持多级子目录的 Router 类库
MY_Router.php 放到 system/application/libraries 目录下,就可以让 CI 的控制器支持多级子目录了.这样,你就可以在 system/application/c ...
- 怎样使用md命令一次建立多级子目录
https://jingyan.baidu.com/article/37bce2be30cae21002f3a224.html 点击开始,运行,在运行窗口中输入“cmd”. 打开cmd窗口之后,用 ...
- win32下开发hadoop
转载自:http://my.oschina.net/muou/blog/408543[木偶:Windows下使用Hadoop2.6.0-eclipse-plugin插件] 对于一些细节地 ...
随机推荐
- 基于Hadoop生态技术构建阿里搜索离线系统
一.计算平台架构 平台架构 集群规模 集群特点 二.支撑的搜索业务 搜索业务 处理流程 三.YARN计算平台 iStream计算模型 Schedule改进 AppHistoryServer改进 HSt ...
- gRPC .NET Core跨平台学习
前些天发布gRPC C# 学习,在.NET Framework 中使用gRPC ,今天来学习 .NET Core gRPC. gRPC 的.NET Core 包在NuGet 上发布了,结合.NET C ...
- C#判断字符串是否是数字
/// <summary> /// 判断字符串是否是数字 /// </summary> public static bool IsNumber(string s) { if ( ...
- [WCF编程]12.事务:事务概述
一.事务概述 维护系统一致性和正确地处理错误恢复挑战的最佳方式是使用事务. 一个事务就是一个复杂操作的集合,这个集合中任何一个操作的失败都会引起整个集合的失败. 尽管在事务进行时系统被允许暂时出于不一 ...
- 详解Spring框架AOP(面向切面编程)
最近在学习AOP,之前一直很不明白,什么是AOP?为什么要使用AOP,它有什么作用?学完之后有一点小小的感触和自己的理解,所以在这里呢就跟大家一起分享一下 AOP(Aspect-Oriented Pr ...
- Eclipse安装FindBug
insert software: http://findbugs.cs.umd.edu/eclipse
- java web学习总结(十五) -------------------JSP基础语法
任何语言都有自己的语法,JAVA中有,JSP虽然是在JAVA上的一种应用,但是依然有其自己扩充的语法,而且在JSP中,所有的JAVA语句都可以使用. 一.JSP模版元素 JSP页面中的HTML内容称之 ...
- Atitit. 构造ast 语法树的总结attilax oao 1. Ast结构树形12. ast view (自是个160k的jar )22.1. 多条语句ast结构22.2. 变量定义 int b,c; 的ast结构22.3. 方法调用meth1(a=1,b=2,c=3); 的ast结构23. 误解的问题33.1. 语法书子能是个二叉树,实际上多叉树越好..33.2. 非要不个ast放到个s
Atitit. 构造ast 语法树的总结attilax oao 1. Ast结构树形1 2. ast view (自是个160k的jar )2 2.1. 多条语句ast结构2 2.2. 变量定义 in ...
- [转载]T-SQL(MSSQL)语句查询执行顺序
注意:笔者经过实验和查阅资料,已在原作基础上做了部分更改.更改不代表原作观点,查看原作请点击下方链接. 原文出处: 作者:张龙豪 链接:http://www.cnblogs.com/knowledge ...
- 中文字体font-family常用列表
Windows的一些: 黑体:SimHei 宋体:SimSun 新宋体:NSimSun 仿宋:FangSong 楷体:KaiTi 仿宋_GB2312:FangSong_GB2312 楷体_GB2312 ...