博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++:文件操作
阅读量:3723 次
发布时间:2019-05-22

本文共 1236 字,大约阅读时间需要 4 分钟。

C++:文件操作

1. 如果不存在文件夹就创建文件夹

  函数access可以判断文件或文件夹是否存在。mkdir可以创建文件夹,但不能递归创建。这里写了一个函数mkdirp用于递归创建文件夹。

#include 
#include
#include
#include
using namespace std;int mkdirp(const string path) {
string temp_path = path; if(temp_path[0] == '/') if(temp_path.substr(0, 5).compare("/home") != 0) return -1; for(size_t i=1; i
> temp_path) {
prefix += temp_path; //cout << prefix << endl; if(access(prefix.c_str(), F_OK) != 0) if(mkdir(prefix.c_str(), S_IRUSR | S_IWUSR | S_IXUSR | S_IRWXG | S_IRWXO) !=0) return -1; prefix += '/'; } return 0;}int main() {
const string output_dir = "/home/
/video/1/2/asd"; cout << mkdirp(output_dir) << endl;}
  • 第11 - 13行:如果从根目录创建文加夹,确保只能从/home开始。
  • 第15 - 17行:从下标1开始,把路径字符串的’ / '换成空格,这样便于使用stringstream分割字符串。之所以不从下标0开始,是因为路径可能以/home开始。
  • 第26行:判断文件夹是否存在。
  • 第27行:判断创建文件夹是否成功。
    []

  还可以使用system函数执行系统命令递归地创建文件夹:

#include 
#include
#include
using namespace std;void mkdirp(const string Path) {
if(access(Path.c_str(), F_OK) == -1) {
string dir = "mkdir -p " + Path; system(dir.c_str()); }}int main() {
const string output_dir = "/home/omen/video/1/2/asd"; mkdirp(output_dir);}

转载地址:http://dcdnn.baihongyu.com/

你可能感兴趣的文章
maven插件打包项目jar包时出错
查看>>
汇编语言 内部中断
查看>>
汇编语言 标志位
查看>>
汇编语言 ADC指令和SBB指令
查看>>
汇编语言 8086+8255A仿真中断控制
查看>>
汇编语言 CMP指令
查看>>
汇编语言 pushf 和 popf指令
查看>>
Java Set接口
查看>>
汇编语言 实现一个数字的平方
查看>>
Java 类反射
查看>>
汇编 SHL指令和SHR指令
查看>>
汇编 输入输出指令
查看>>
汇编语言 外部中断
查看>>
汇编语言 判断学生成绩是否及格
查看>>
汇编语言 ORG伪指令
查看>>
Xshell 连接 Ubuntu
查看>>
智能指针学习笔记
查看>>
MySQL8.0.19 Windows10安装
查看>>
Centos7 Docker安装
查看>>
SpringBoot2.x整合MyBatis
查看>>