在linux在如果创建目录的中间路径不存在,则会创建失败,下面给一份创建多级目录的代码。

递归:

#include "stdio.h"
#include "string.h"
#include <sys/stat.h>
#include <unistd.h> #define PATH  "ggyy1/ggyy2/ggyy3/ggyy4/ggyy5"
#define PATH1   "ggyy1/gg yy2/ggyy3/ggyy4/ggyy5/ggyy1/ggyy2/ggyy3/ggyy4/ggyy5"#ifndef FALSE#define FALSE 0
#endif
#ifndef TRUE#define TRUE  1
#endif
typedef unsigned char ubyte;
typedef ubyte bool_t;bool_t Logm_IsFileExist(const char *path);
int Logm_CheckAndCreateDir(const char* path);int main()
{printf("ggyy\n");if(0 == Logm_CheckAndCreateDir(PATH1)){printf("create success\n");  }return 0;
}bool_t Logm_IsFileExist(const char *path)
{return access(path, F_OK) == 0 ? TRUE : FALSE;
}int Logm_CheckAndCreateDir(const char* path)
{char path_tmp[1024];char upper_path_temp[1024];char* p = NULL;memset(path_tmp, 0, sizeof(path_tmp));memset(upper_path_temp, 0, sizeof(upper_path_temp));/*check param*/if(NULL==path || strlen(path)<=0 || strlen(path)>=1024){return -1;}strncpy(path_tmp, path, sizeof(path_tmp)-1);/*dir no exist*/if(!Logm_IsFileExist(path_tmp)){/*get upper dir*/strncpy(upper_path_temp, path_tmp, sizeof(upper_path_temp)-1);p = strrchr(upper_path_temp, '/');/*if upper dir exist*/if(NULL != p){p[0] = 0;/*check and create upper dir*/if(0 != Logm_CheckAndCreateDir(upper_path_temp)){return -1;}}/*create current dir*/if (mkdir(path_tmp, ((S_IRWXU |S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH))) == 0){printf("create dir:%s successfully", path_tmp);return 0;}else{return -1;}}else{return 0;}
}

循环:

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include <sys/stat.h>
#include <unistd.h> #define PATH  "ggyy1/ggyy2/ggyy3/ggyy4/ggyy5"
#define PATH1   "/ggyy1/gg yy2/ggyy3/ggyy4/ggyy5/ggyy1/ggyy2/ggyy3/ggyy4/ggyy5/"#ifndef FALSE#define FALSE 0
#endif
#ifndef TRUE#define TRUE  1
#endif
typedef unsigned char ubyte;
typedef ubyte bool_t;bool_t Logm_IsFileExist(const char *path);
int Logm_CheckAndCreateDir(const char* path);int main()
{printf("ggyy\n");if(0 == Logm_CheckAndCreateDir(PATH1)){printf("create success\n");  }return 0;
}bool_t Logm_IsFileExist(const char *path)
{return access(path, F_OK) == 0 ? TRUE : FALSE;
}
int Logm_CheckAndCreateDir(const char* path)
{const int buffLen = 1024;char pathTemp[buffLen];char upperPathTemp[buffLen];char* p = NULL;int i = 0;int cnt = 1;int result = -1;memset(pathTemp, 0, sizeof(pathTemp));memset(upperPathTemp, 0, sizeof(upperPathTemp));/*check param*/if(NULL==path || strlen(path)<=0 || strlen(path)>=buffLen){result = -1;}else{while(1){strncpy(pathTemp, path, sizeof(pathTemp)-1);p = pathTemp;for(i=0; i<cnt; i++){p = strchr(p, '/');if(p){p += 1;}}if(p){p[0] = 0;if(!Logm_IsFileExist(pathTemp)){if (mkdir(pathTemp, ((S_IRWXU |S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH))) == 0){printf("create dir:%s successfully", pathTemp);}else{printf("mkdir create dir:%s failed", pathTemp);result = -1;break;}}cnt++;}else{if(!Logm_IsFileExist(pathTemp)){if (mkdir(pathTemp, ((S_IRWXU |S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH))) == 0){printf("create dir:%s successfully", pathTemp);}else{printf("mkdir create dir:%s failed", pathTemp);result = -1;break;}}     break;}}}return result;
}

linux 创建多级目录相关推荐

  1. Linux mkdir 命令创建多级目录

    前言 CentOS Linux release 8.2.2004 (Core) 创建多级目录 比如创建目录 /data/a/b/c shell> mkdir /data shell> mk ...

  2. linux c语言创建多级目录

    /* mkdir 一次只能创建一级目录,怎样创建多级目录.* 用access 判断目录是否已经创建.* 用mkdir逐级创建目录*/ #include <stdio.h> #include ...

  3. php 从根目录 开始创建,php创建多级目录的方法

    php创建多级目录的方法 本文实例讲述了php创建多级目录的方法.分享给大家供大家参考.具体实现方法如下: /* 写出一个能创建多级目录的PHP函数 */ function createdirlist ...

  4. php创建多级目录完整封装类操作

    创建多级目录函数中调用创建指定下的指定文件的函数: public function create_dir($dir,$mode=0777){return is_dir($dir) or ($this- ...

  5. php使用mkdir创建多级目录入门例子

    来源:http://www.jb51.net/article/49970.htm <?php   //echo "hello world";   //echo "y ...

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

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

  7. 【转】php利用mkdir创建多级目录

    先介绍一下 mkdir() 这个函数: mkdir($path,0777,true); 第一个参数:必须,代表要创建的多级目录的路径: 第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访 ...

  8. php利用mkdir()创建多级目录

    先介绍一下 mkdir() 这个函数: mkdir($path,0777,true); 第一个参数:必须,代表要创建的多级目录的路径: 第二个参数:设定目录的权限,默认是 0777,意味着最大可能的访 ...

  9. qdir 自动创建多级目录_Qt 判断文件或文件夹是否存在及创建文件夹

    1. 判断文件夹是不是存在 参数说明: QString fullPath;//文件夹全路径 /*方法1*/ bool isDirExist(QString fullPath) { QDir dir(f ...

最新文章

  1. c中的指针和直接引用结构体的编译后的差异
  2. git commit如何修改默认编辑器为vim
  3. SAP复合角色更改后扩展到派生节点
  4. 专题:区块链与数据共享(上)
  5. 微信Mac版可以发朋友圈了 还能浏览相册
  6. jQuery 源码系列(二)init 介绍
  7. android 开启离屏缓存,Android性能优化笔记(持续更新帖)
  8. birt字体 linux,linux下birt 图表中文乱码问题
  9. 扫描转换html,HTML5/CSS3 3D雷达扫描动画
  10. Gin+Mysql简单的Restful风格的API
  11. 移植waland/weston 到AM335X 在运行的时候运行不成功分析
  12. BadDet: Backdoor Attacks on Object Detection——面向目标检测的后门攻击
  13. 小象学院—小象学院—Python学习联盟09—空气质量指数计算
  14. 字节跳动:雀魂启动!(Python语言实现)
  15. 【炼数成金 NOSQL引航 一 】 进入NoSQL世界;NoSQL与SQL的战争
  16. python写打飞机游戏
  17. 联想笔记本快捷键控制千千静听 2009年10月2日19:09:44
  18. java查找文件路径_如何查找java路径?
  19. [msi]读取文件.msi时出错。请确认文件存在,并且您可以访问改文件
  20. MT8516处理器性能介绍,MTK芯片资料分享

热门文章

  1. 新浪(NASDAQ:SINA)
  2. 剖析品牌出海故事,行云全球汇价值凸显
  3. 项目管理的整体进度的中间阶段
  4. 光学系统中的光栅建模——实例讨论
  5. 史上最全的xpath定位方法
  6. 拜托,有一个python画的生日蛋糕超酷的好吧~
  7. 开源Linux、Windows服务器数据备份工具选型分析(一) UrBackup
  8. 软件测试如何测试淘宝购物车
  9. 代码坏味道与重构之冗赘的元素和夸夸其谈的通用性
  10. 《沟通的方法》笔记五:职业性格测试