C++ 库研究笔记——Linux下创建文件夹
来源:互联网 发布:玻璃软件 编辑:程序博客网 时间:2024/06/05 03:58
查了很多,都不怎么完成,后在stackoverflow 上了一个失推荐不多的方案,发现是最有效的。
如创建 "ab/b/c" 这个文件夹,其中,ab文件夹不要求事先不存在(若不存在,先创建)
#pragma once#include <iostream>#include <string>#include <sys/stat.h>#include <errno.h>namespace light{int mkpath(std::string s,mode_t mode=0755){ size_t pre=0,pos; std::string dir; int mdret; if(s[s.size()-1]!='/'){ // force trailing / so we can handle everything in loop s+='/'; } while((pos=s.find_first_of('/',pre))!=std::string::npos){ dir=s.substr(0,pos++); pre=pos; if(dir.size()==0) continue; // if leading / first time is 0 length if((mdret=::mkdir(dir.c_str(),mode)) && errno!=EEXIST){ return mdret; } } return mdret;}/* * 注:使用时,light::mkdir, 易与::mkdir 混淆,固去掉了int mkdir(std::string s,mode_t mode){ light::mkpath(s, mode);}*/}
测试代码
#include "mkpath.h"int main(){ int mkdirretval; //mkdirretval=light::mkpath("foo2/bar",0755); //mkdirretval=light::mkpath("./lsl/foo2/bar"); mkdirretval=light::mkpath("lsl/foo2/bar"); std::cout << mkdirretval << '\n';}
- C++ 库研究笔记——Linux下创建文件夹
- C++ 库研究笔记——Linux下创建文件夹
- C++库研究笔记——Linux 下高精度计时器
- linux c创建文件夹
- linux下创建文件夹
- Linux下创建文件夹
- 【C/C++】C++库研究笔记——函数名的宏定义
- Linux 下 C++ 创建文件夹
- linux下创建、删除文件夹
- linux下C遍历文件夹
- C++库研究笔记——Linux下是否需要使用memory pool?
- linux c创建文件夹,并在文件夹中创建文件
- C++库研究笔记——policy-base 实现
- C++库研究笔记——doxygen资料记录
- C++库研究笔记——几个注意(size_t)
- C++库研究笔记——函数名的宏定义
- C++库研究笔记——生成一组随机数
- C++库研究笔记——内存池实现
- 做一个对自己负责任的程序员
- 完美数
- 我们都爱周鸿祎.......
- 明志致远
- unix设计哲学
- C++ 库研究笔记——Linux下创建文件夹
- C#在活动目录(ACTIVE DIRECTORY)中创建组织单位和用户
- UIKit封装的系统动画
- apt-get update报错:Hash sum mismatch
- 嵌入式平台编译安装minicom
- 程序员的困境
- Ubuntu 持续更新 有用的小命令
- openlayers简单例子
- NET 分布式架构开发实战之二 草稿设计