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
41     return TRUE;
42 }

作者:耑新新,发布于  博客园

转载请注明出处,欢迎邮件交流:[email protected]

原文地址:https://www.cnblogs.com/Arthurian/p/12681789.html

时间: 2024-10-08 02:09:05

C++递归创建文件夹的相关文章

vc递归创建文件夹

1 void CreateDir(const string& strPath) 2 { 3 if (PathFileExists(strPath.c_str())) 4 { 5 return; 6 } 7 8 size_t sPrePos = 0; 9 string strTmp = ""; 10 size_t sPos = strPath.find('\\'); 11 if (sPos == string::npos) 12 { 13 return; 14 } 15 16 s

MFC下对文件及文件夹的操作(复制、剪切、删除、创建文件夹,写文件)

一.文件夹的创建 1 void CFileOperationDlg::OnButtonMakeFolder() 2 { 3 // TODO: Add your control notification handler code here 4 UpdateData(TRUE); 5 CFileFind m_sFileFind; 6 7 if (!m_sFileFind.FindFile(m_FolderName)) 8 { 9 CreateDirectory(m_FolderName,NULL);

mkdir 创建文件夹或者目录

linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录... 2.命令功能: 通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录.要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限.并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写). 3.命令参数

PHP递归复制文件夹以及传输文件夹到其他服务器。

项目中需要复制整个文件夹,有时候还需要将整个文件夹传输到远程服务器. 这里就要递归遍历整个文件夹了,想看递归遍历文件夹的代码. function deepScanDir($dir) { $fileArr = array (); $dirArr = array (); $dir = rtrim($dir, '//'); if (is_dir($dir)) { $dirHandle = opendir($dir); while (false !== ($fileName = readdir($dir

linux文件夹操作及递归遍历文件夹

文件夹相关函数介绍 //mkdir 函数创建文件夹 #include <sys/stat.h> #include <sys/types.h> int mkdir(const char *pathname, mode_t mode); //rmdir 删除文件夹 #include <unistd.h> int rmdir(const char *pathname); //dopendir/fdopendir  //打开文件夹 DIR是一个结构体,是一个内部结构,用来存储读

【Java】创建文件夹

Java中创建文件夹使用File类下自带的mkdirs()方法就能够轻松完成了, 本来没有什么好说的,唯一值得注意的是这个mkdirs()能够一次性创建多级目录,无须递归调用.也就是说,我要创建在F盘新建一个文件夹a,然后在这个文件夹a中在创建文件夹s,直接通过File file=new File("f:\\a\\s");指定f:\a\s这个路径,然后直接同过file.mkdirs()方法的调用,Java就会在系统中帮助你完成这两个文件夹的创建, 代码无须写成按照平时操作Windows

C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件

C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw.WriteLine("追逐理想"); sw.WriteLine("kzlll"); sw.WriteLine(".NET笔记"); sw.Flush(); sw.Close();C#拷贝文件 string OrignFile,NewFile; Or

Centos7下创建文件夹 移动文件/文件夹 删除文件/文件夹 解压/文件夹打包压缩 命令整理

一.创建文件夹 1.创建本目录下文件夹 mkdir dir 2.创建其他目录下文件夹    mkdir dir/file 3.创建多级目录文件夹    mkdir -p tmp/dir 4.创建file.txt文件    mkdir dir/file.txt 二.修改文件夹名 1.文件夹重命名    mv dir dir1  2.文件重命名    mv dir/file.txt dir/files.txt 三.查看文件夹/文件 1.cd dir 2.cd dir/dir1 3.回到主目录 cd

PHP如何创建文件夹(mkdir的用法,mkdirs的语法)【转】

(PHPmkdir如何创建多级目录) ?? 在开始之前,我先说明一下,可能许多朋友与我一样认为只要给一个路径,mkdir就可以创建文件夹,其它不是那样,单个的MKDIR只能创建一级目录,对于多级的就不行了,那如何用mkdir来创建呢?先我抄一段手册上的有关mkdir的描述,如下: 说明 bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] ) 尝试新建一个由 pathname 指定的目录