C++递归创建文件夹
根据传入的参数递归进行目录的创建。
函数描述:
递归创建目录。
入参:
所要创建的目录。
返回值:
创建成功,返回TRUE;否则返回FALSE。
1 BOOL CreateDirTree(LPCTSTR lpPath)
2 {
3 if( (NULL == lpPath) || (0 == _tcslen(lpPath)))
4 {
5 return FALSE;
6 }
7
8 if((TRUE == PathFileExists(lpPath)) || (TRUE == PathIsRoot(lpPath)) )
9 {
10 return TRUE;
11 }
12 TCHAR szParentpath[MAX_PATH] = _T("");
13 _tcscpy_s( szParentpath, _countof(szParentpath), lpPath);
14
15 TCHAR *pTmp = PathRemoveBackslash(szParentpath );//去除路径最后的反斜杠
16 if (NULL == pTmp)
17 {
18 return FALSE;
19 }
20
21 BOOL bRet = PathRemoveFileSpec(szParentpath );//将路径末尾的文件名或文件夹和反斜杠去掉
22 if (FALSE == bRet)
23 {
24 MyOutputDebugMsg(_T("%s %d PathRemoveFileSpec Failed"), __TFILE__, __LINE__);
25 }
26
27 if(0 == _tcscmp(lpPath, szParentpath))
28 {
29 return FALSE;
30 }
31
32 if(CreateDirTree(szParentpath))//递归创建直到上一层存在或是根目录
33 {
34 return CreateDirectory(lpPath, NULL);
35 }
36 else
37 {
38 return FALSE;
39 }
40 }
C++递归创建文件夹的更多相关文章
- 如何使用python 新建文件夹以及递归创建文件夹
转载:如何使用python 新建文件夹以及递归创建文件夹 | 酷python (coolpython.net) 1. os.mkdir 使用python创建文件夹,通常使用os.mkdir方法,在使用 ...
- MFC下对文件及文件夹的操作(复制、剪切、删除、创建文件夹,写文件)
一.文件夹的创建 void CFileOperationDlg::OnButtonMakeFolder() { // TODO: Add your control notification handl ...
- PHP判断文件夹是否存在和创建文件夹的方法(递归创建多级目录)
在开始之前,我先说明一下,可能许多朋友与我一样认为只要给一个路径,mkdir就可以创建文件夹,其实不是那样,单个的MKDIR只能创建一级目录,对于多级的就不行了,那如何用mkdir来创建呢?先我抄一段 ...
- node.js 递归复制文件夹(附带文件过滤功能)
1.简介: 很简单,写了一个node操作文件的小脚本,主要实现对目标文件夹中内容的复制.还顺带一个按照文件夹或者文件名过滤的功能. 2.应用场景 适合基于 node 环境的项目,项目打包的时候,配合 ...
- linux文件夹操作及递归遍历文件夹
文件夹相关函数介绍 //mkdir 函数创建文件夹 #include <sys/stat.h> #include <sys/types.h> int mkdir(const c ...
- java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数
File 递归删除文件夹中所有文件文件夹 package com.swift.kuozhan; import java.io.File; import java.util.Scanner; /*键盘录 ...
- C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件....
本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下 面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内 ...
- PHP递归复制文件夹以及传输文件夹到其他服务器。
项目中需要复制整个文件夹,有时候还需要将整个文件夹传输到远程服务器. 这里就要递归遍历整个文件夹了,想看递归遍历文件夹的代码. function deepScanDir($dir) { $fileAr ...
- C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件
C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw ...
- Ubuntu上使用过的命令,Linux常用命令,mount 硬盘挂载, ls 列表list命令,cp 复制copy命令,mkdir 创建文件夹 ,nano 编辑器,cat 文档合并,chmod 文件权限,ssh win10连接ubuntu服务器的步骤
man 帮助 > man ls # ubuntu的帮助 tar.gz 压缩解压 > tar -zcvf yzn.tar.gz /home/yzn # 压缩 > tar -zxvf y ...
随机推荐
- @ComponentScan
@ComponentScan 是一个注解,用于Spring框架,它允许开发者指定Spring应该扫描哪个包或包下的子包来寻找组件(如@Component.@Service.@Repository等注解 ...
- 2. 从0开始学ARM-CPU原理,基于ARM的SOC讲解
关于ARM的一些基本概念,大家可以参考我之前的文章: <到底什么是Cortex.ARMv8.arm架构.ARM指令集.soc?一文帮你梳理基础概念[科普]> 关于ARM指令用到的IDE开发 ...
- 手把手教Linux驱动10-platform总线详解
platform总线是学习linux驱动必须要掌握的一个知识点. 本文参考已发布:Linux 3.14内核 一.概念 嵌入式系统中有很多的物理总线:I2c.SPI.USB.uart.PCIE.APB. ...
- k8s中文文档
地址:http://docs.kubernetes.org.cn/122.html
- 生产者消费者模式,以及基于BlockingQueue的快速实现
生产者消费者模式,以及基于BlockingQueue的快速实现什么是生产者消费者模式,简单来说就是有两个角色,一个角色主要负责生产数据,一个角色主要负责消费(使用)数据.那么生产者直接依赖消费者,然后 ...
- SQL Server – 执行计划和各种 join 方式 (Execution plan & Join Pattern)
前言 我几乎从来没有遇到过性能问题, 毕竟项目真的太小了. 一般上只要用常识去建 index 就可以了. 但是这并不阻碍我对知识的追求. 这篇是关于一些性能优化和原理的内容. 纯属学习, 希望未来有机 ...
- Figma 学习笔记 – Image
参考: Figma Tutorial: Images 3 Ways to Insert Image 1. rectangle / frame + fill 画一个 rectangle / frame ...
- manim边学边做--弧形多边形
弧形多边形是一种结合了圆弧和多边形的图形,这类几何图形在设计中应用非常广泛. 比如在家居设计中,看看家里的沙发,餐桌和座椅等,它们的边角,靠背等地方都是弧形的设计,这种设计有效柔化了室内空间,使整体氛 ...
- Servlet——xml配置Servlet
XML配置方式编写 Servlet 步骤: 1.编写 Servlet 类 2.在 web.xml 中配置该Servlet
- [OI] 可持久化数据结构
学了一年 OI 才看懂这句话: \(\log n\) 是以什么为底的? 其实没什么区别 因为我们自动忽略常数,因此 \(\log_{a}n=\frac{\log_{x}n}{\log_{x}a}=\l ...