C++ 根据文件路径自动递归创建所需目录

在编码过程中经常需要根据路径创建目录的场景,此处实现了一个根据文件路径递归创建所需目录的方法。
注意:以下方法为windows下的实现,在linux下使用时,将mkdir_nested(char*)方法中的 _access替换为access, _mkdir替换为mkdir 即可

// 嵌套创建目录
unsigned char mkdir_nested(char* filepath)
{char file[512];int fileindex, filelen;if (NULL == filepath)return 1;filelen = strlen(filepath);if (filelen >= 512)return 2;memset(file, 0, 512);for (fileindex = 0; fileindex < filelen; fileindex++) {if ((0x5c == *(filepath + fileindex)) || (0x2f == *(filepath + fileindex))) {if (_access(file, 0)) {_mkdir(file);}file[fileindex] = *(filepath + fileindex);}else {file[fileindex] = *(filepath + fileindex);}}if (_access(file, 0)) {_mkdir(file);}return 0;
}
// 根据文件路径创建所需目录
void create_dir_by_filepath(char* file)
{char file_path[MAX_PATH] = { 0 };char* backslash = strrchr((char*)f, '/');if (backslash <= 0) {backslash = strrchr((char*)f, '\\');}if (backslash > 0) {memcpy_s(file_path, sizeof(file_path), f, (backslash - f));mkdir_nested(file_path);}
}

C++ windows下自动递归创建所有目录相关推荐

  1. Windows下自动备份Oracle数据库

    Windows下自动备份Oracle数据库 先说说为啥要搞这么个玩意 那是上线前几天[这不是讲故事],测试环境用的数据库崩了[为啥崩了不知道].之前造的一堆测试数据全都没得了[].然后急急忙忙的恢复环 ...

  2. 在linux和windows下自动备份数据库

    摘要: 详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧! 本文档内容共分为2大部分:linux和windows Linux和windows都分为:准备工作和操作阶 ...

  3. PHP递归创建多级目录(一道面试题的解题过程)

    今天看到一道面试题,要写出一个可以创建多级目录的函数: 我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkd ...

  4. Windows下自动同步工具SyncToy的使用与定时执行部署

    最近因为需要用到一个自动同步两台虚拟机的工具,在网上找了许多资料,刚开始是觉得GoodSync这个不错,界面美观,功能完善易用,可定时执行等,但是这款软件是收费的,而且winserver下要使用企业版 ...

  5. 在Windows中自动压缩备份文件和目录的脚本

    1.准备工作 在Windows系统中首先需要安装 WinRAR 压缩和解压程序,并记录下exe文件的安装目录: D:\tools\WinRAR\WinRAR.exe 2.编写脚本 @echo off ...

  6. Windows下NTFS文件系统创建与结构概览及DBR字节分析(基于Windows)

    今天我们先学习一下Windows下较为常见的一个文件系统NTFS的基本结构及DBR分析,NTFS文件系统作为我们日常较为常用的一个文件系统,所以在数据恢复上学会它非常地重要,那么这篇文章就主要分享NT ...

  7. cd 在windows下 无法切换盘符目录

    在windows下, 打开cmd.exe, 默认进入到当前用户主目录下, 发现除了C:\盘, 可以通过cd .. , cd , dir 去到C:\盘的各个目录外, 不能通过 cd d: 进入到其他盘 ...

  8. Windows下 更改 pip默认缓存目录

    windows下,pip的默认缓存目录为:"C:\Users{username}\AppData\Local\pip\cache" 可以使用以下命令修改缓存目录 pip confi ...

  9. windows 下使用 virtualenv 创建虚拟环境

    virtualenv虚拟环境为每个项目隔离了一套运行类库,不同的项目在各自的虚拟环境中使用不同的类库,避免了将所有类库都安装到系统环境中导致的不同项目需要不同(版本)类库的问题,项目与项目之间的类库依 ...

最新文章

  1. WINCE的内存配置-config.bib文件的解析
  2. mysql root密码忘记2018_2018-03-28设置及修改mysql用户密码学习笔记
  3. php 关闭电脑,php实现用手机关闭计算机(电脑)的方法
  4. Oracle 中国研发中心裁员已成定局,云时代下一个是谁?
  5. 重装xp后恢复wubi安装的ubuntu
  6. 为什么你的缓存更新策略是先更新数据库后删除缓存,讲讲其他的情况有什么问题?...
  7. 嵌入式系统与人工智能
  8. 注册免费域名教程(怎样免费注册域名)
  9. c语言实现小球跳动的效果
  10. javascript:理解try...catch...finally
  11. Android 摄像头拍照显示 相册显示 图片裁剪绘制显示
  12. 几个适合车载的ITX/MATX服务器主板信息总结
  13. php session header,php session header()重定向后丢失 - php
  14. 英语发音规则---Q字母
  15. python数据可视化开发(2):pandas读取Excel的数据格式处理(数据读取、指定列数据、DataFrame转json、数学运算、透视表运算输出)
  16. Kubernetes集群部署实录
  17. web端生成pdf,前端生成pdf导出并自定义页眉页脚
  18. 软件性能测试论文草稿
  19. 主要DSP芯片厂商及其产品
  20. python随机生成IP地址

热门文章

  1. 偷摸的回校,打枪的不要!
  2. 可能是史上最全面的内存管理文章
  3. MySQL 8 复制(九)——组复制联机配置
  4. MathType中加入空格
  5. CGB2202面向对象第6天
  6. 7-41 【0505】球体积
  7. php ajax传值报错,ajax传值报错之php5.5、5.6关于ajax的传值要求
  8. u盘装服务器linux软件,服务器维护给您的U盘安装linux
  9. 什么是JavaBean,JavaBean作用
  10. 2021年化工自动化控制仪表及化工自动化控制仪表考试试题