linux下c++递归创建多级目录

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

使用递归方式,创建多级目录。

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>  
#include <sys/stat.h>  
#include <string>

int _sysmkdir(const std::string& dir)
{
    int ret = mkdir(dir.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
    if (ret && errno == EEXIST)
    {
        printf("dir[%s] already exist.\n",dir.c_str());
    }
    else if (ret)
    {
        printf("create dir[%s] error: %d %s\n" ,dir.c_str(),ret ,strerror(errno));
        return -1;
    }
    else
    {
        printf("create dir[%s] success.\n", dir.c_str());
    }
    return 0;
}
std::string __getParentDir(const std::string& dir)
{
    std::string pdir = dir;
    if(pdir.length() < 1 || (pdir[0] != '/')){
        return "";
    }
    while(pdir.length() > 1 && (pdir[pdir.length() -1] == '/')) pdir = pdir.substr(0,pdir.length() -1);

    pdir = pdir.substr(0,pdir.find_last_of('/'));
    return pdir;
}
int _sysmkdirs(const std::string& dir)
{
    int ret = 0;
    if(dir.empty())
        return -1;
    std::string pdir;
    if((ret = _sysmkdir(dir)) == -1){
        pdir = __getParentDir(dir);
        if((ret = _sysmkdirs(pdir)) == 0){
            ret = _sysmkdirs(dir);
        }
    }
    return ret;
}
c++循环创建文件夹 如果要创建一个目录 /www/live/cctv,但是当前并没有/www,需要用以下方式进行循环创建。 bool createRecursionDir(std::string path) { if (path.length() == 0) return true; std::string sub; fixPath(path); std::string::size_type pos = path.find('/'); while (pos != std.. 阅读详情

相关推荐

基于C/C++递归创建目录

unsigned char mymkdir(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 <...

无奋斗、无青春! 1244

mkdir创建目录问题

教训:不能创建多级目录。。。改为逐级创建,或者手动创建上一级目录。测试cpp:#include &lt;sstream&gt; #include &lt;sys/types.h&gt; #include &lt;sys/stat.h&gt; #include &lt;iostream&gt; int main(int argc, char **argv) { int status; ...

qq_36501182的博客 1338

C++ windows下自动递归创建所有目录

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

Echo的博客 1631

linux c/c++ 创建多级目录

有时候应用程序中,需要创建目录,但如果是多级目录,直接使用mkdir函数是没法实现的,需要循环调用mkdir函数, 这里就做一个记录,以便以后需要的时候,可以直接使用。 #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <string> boo...

xuanwolanxue的专栏 6221

C++ 库研究笔记——Linux创建文件夹

转自https://blog.csdn.net/rathome/article/details/78870694 查了很多,都不怎么完成,后在stackoverflow 上了一个失推荐不多的方案,发现是最有效的。 如创建 “ab/b/c” 这个文件夹,其中,ab文件夹不要求事先不存在(若不存在,先创建) #pragma once #include <iostream> #in...

qq_38446366的博客 526

C++创建多级目录及判断目录是否存在的方法

C++循环创建多级目录 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

weixin_33656634的博客 772

c include 多层目录_详解C++循环创建多级目录及判断目录是否存在的方法

C++循环创建多级目录#include "unitfiles.h"#ifdef WIN32#include #include #elif LINUX#include #include #endif#ifdef WIN32#define ACCESS _access#define MKDIR(a) _mkdir((a))#elif LINUX#define ACCESS access#define ...

weixin_35805266的博客 443

C++实现Linux文件拷贝工具:从系统调用到工程实践

文件操作是编程中的基础概念,涉及数据在存储介质间的读写与传输。其核心原理是通过操作系统提供的系统调用或标准库接口,在用户空间与内核空间之间传递数据缓冲区。掌握底层文件I/O技术对于构建高性能、高可靠性的系统软件具有重要价值,尤其在需要精细控制数据传输过程的后台服务、备份工具等应用场景中。本文聚焦于Linux环境下使用C++实现健壮的文件目录拷贝工具,深入探讨了缓冲区优化、元数据保留和错误处理等工程实践关键点,通过RAII资源管理确保代码的健壮性,为开发者提供了从原理到实现的完整解决方案。

weixin_31856057的博客 290

LinuxC++文件操作避坑指南:mkdir()与opendir()的正确使用姿势

本文深入解析Linux环境下C++文件操作中mkdir()与opendir()函数的使用要点与常见陷阱。重点探讨了如何正确设置目录权限、处理多级目录创建、进行健壮的错误检查,并提供了可直接复用的生产级代码示例,帮助开发者避免权限、路径和竞态条件等问题,编写出更稳定可靠的系统程序。

egg99的博客 837

linux c++ 创建多级目录,C++ 一次创建多级目录

#ifdef WIN32#include #include #else#include #include #endif#include #include #define MAX_PATH_LEN 256#ifdef WIN32#define ACCESS(fileName,accessMode) _access(fileName,accessMode)#define MKDIR(path) _mk...

weixin_35588980的博客 1503

Linux :: 【基础指令篇 :: 文件及目录操作:(4)】:: mkdir :: 创建目录:指定路径单个目录创建及一次性创建多级目录

本篇内容介绍Linux的基本命令:创建目录:文中介绍了单个目录的当前路径创建、指定路径的创建、及递归式单次创建多级目录

weixin_53202576的博客 5657

C/C++编程:Linux创建多级目录

#include <iostream> #include <zconf.h> #include <assert.h> #include <sys/stat.h> #define MAX_PATH 260 char* safe_strncpy(char* dest, const char* src, size_t n) { assert(dest != nullptr && src != nullptr); char* ret

OceanStar的博客 688

linux C++创建多级目录

【代码】linux C++创建多级目录

kangseung的博客 697

C/C++创建多级目录函数,支持windows和linux

转载自:http://tianyou8.blog.hexun.com/57206664_d.html 1。首先请加上这些预编译 #ifdef _WIN32 #include #include #elif _LINUX #include #include #endif #ifdef _WIN32 #define ACCESS _access #define MKDIR(a) _

sunnylgz 2万+

linux c++ 创建多级目录,c语言创建多级目录

int MyCreateDirectory(char * str){char dirPath[MAX_PATH];char *lpszTmp;//WIN32_FIND_DATA FindData;//HANDLE hFind;int i=0;sprintf(dirPath,”%s”,str);for(i=strlen(dirPath);i > 2;i–){if(dirPath[i-1] !...

weixin_36250200的博客 287

LinuxC++递归方式实现目录递归拷贝和删除

Linux下使用C++实现拷贝和删除文件(文件夹)的操作

qq_42724789的博客 685

c++ 创建多级目录_Linux常用命令-目录操作命令

Linux系统中常用的对目录进行操作的命令1、Is命令功能:显示目录下的内容格式:[root@localhost ~]# ls [选项] [文件名或目录名]常用选项:-a 显示所有文件 -d 显示目录信息。注意不是目录下的文件 -h 按照最小整数最大单位显示文件大小 -i 显示文件的i节点号 -l 长格式显示(以列表的方式显示)也可以多选项组合使用,大部分命令中选项的先后位置都不影响使用2、cd命...

weixin_34185396的博客 343

linux c++ 遍历目录所有文件

#include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include <dirent.h> #include <iostream> #include <string.h> #include <stdio.h> #include <f...

weixin_42054810的博客 4154
上一篇: 加解密算法学习汇总
lconductor
博客等级 码龄10年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值