首页 > 编程语言 >C++中如何实现创建文件夹

C++中如何实现创建文件夹

时间:2022-11-09 19:25:08浏览次数:39  
标签:include 读取 创建 mkdir C++ 权限 文件夹 folderPath 写入

C++中如何实现创建文件夹:

使用 system() 调用 dos 命令

#include <iostream>
using namespace std;

int main()
{
    string folderPath = "E:\\database\\testFolder"; 

    string command;
    command = "mkdir -p " + folderPath;  
    system(command.c_str());

    return 0;
}

使用头文件 direct.h 中的 access 和 mkdir 函数

#include <direct.h>
#include <iostream>
using namespace std;

int main()
{
    string folderPath = "E:\\database\\testFolder"; 

    if (0 != access(folderPath.c_str(), 0))
    {
        // if this folder not exist, create a new one.
        mkdir(folderPath.c_str());   // 返回 0 表示创建成功,-1 表示失败
        //换成 ::_mkdir  ::_access 也行,不知道什么意思
    }

    return 0;
}

调用 Windows API 函数

#include <windows.h>
#include <iostream>
using namespace std;

int main()
{
    string folderPath = "E:\\database\\testFolder"; 

    if (!GetFileAttributesA(folderPath.c_str()) & FILE_ATTRIBUTE_DIRECTORY) {
        bool flag = CreateDirectory(folderPath.c_str(), NULL);
        // flag 为 true 说明创建成功
    } else {
        cout<<"Directory already exists."<<endl;
    }

    return 0;
}

Linux环境中创建文件夹:

#include <sys/stat.h>
#include <sys/types.h>


// int mkdir(const char *pathname, mode_t mode);
    mkdir(AVM_COMM_ONLINE_DATA_PATH, 0777);
//mkdir()函数以mode方式创建一个以参数pathname命名的目录,mode定义新创建目录的权限。

//若目录创建成功,则返回0;否则返回-1,并将错误记录到全局变量errno中。

/*
-rw------- (600) — 只有所有者才有读取和写入的权限。

-rw-r--r-- (644) — 只有所有者才有读取和写入的权限;组群和其他人只有读取的权限。

-rwx------ (700) — 只有所有者才有读取、写入、和执行的权限。

-rwxr-xr-x (755) — 所有者有读取、写入、和执行的权限;组群和其他人只有读取和执行的权限。

-rwx--x--x (711) — 所有者有读取、写入、和执行权限;组群和其他人只有执行权限。

-rw-rw-rw- (666) — 每个人都能够读取和写入文件。

-rwxrwxrwx (777) — 每个人都能够读取、写入、和执行。
*/

 

标签:include,读取,创建,mkdir,C++,权限,文件夹,folderPath,写入
From: https://www.cnblogs.com/Jack-Elvis/p/16874868.html

相关文章

  • K8s系列---【KubeSphere多租户账号创建流程】
    kubeSphere多租户账号创建流程系统默认用户为超级管理员。使用超级管理员创建HR账号,HR负责整个集团的账号创建。 ......
  • 判断文件或文件夹(目录)是否存在(状态) C/C++ win/linux通用
    一、windows下使用_access()或linux下使用access()函数判断文件状态windows下使用_access()函数所在头文件:<io.h>函数原型:int_access(constchar*_Filename,int_Acces......
  • 创建类模式大PK
    创建类模式包括工厂方法模式、创建者模式、抽象工厂模式、单例模式和原型模式,他们能够提供对象的创建和管理职责。创建型模式,就是用来创建对象的模式,抽象了实例化的过程。它......
  • 支付宝-创建商家券活动
    支付宝-创建商家券活动官方文档https://opendocs.alipay.com/open/03s1jd?ref=api&scene=a0667e04ac87431eb7e6adc5f13cc8ba本篇只是附上创建代码!重要的事情说三遍!......
  • 问题 L: 零基础学C/C++157——保留尾部*
    该题与前面的删除前导一样,之前我们是找到第一个不是的字符,那么现在一样的,我们可以从后往前找,找到第一个不是的字符将其前面的删除(不输出)点击查看代码#include<stdio.h>......
  • Git_项目创建及克隆
    命令pull、fetch/clone、checkout、push、commit、add 创建本地仓库的两种方法:创建全新的仓库gitinit克隆远程仓库——Clonegitclo......
  • C++常见报错信息和原因的对应关系
    1.无法找到xxx.dll没有把动态链接库和exe放在一个文件夹下2.不允许使用不完整的类型指的是忘了加头文件3.linkerr、无法解析的外部符号指的是lib......
  • PaddleDetection Windows C++编译使用指南(含PPYOLO v2、PPYOLO tiny测试)
    导读本文主要介绍PaddleDetection在WindowsC++的编译和使用步骤。包括笔者的各种爬坑记录以及对PPYOLOv2、PPYOLOtiny模型的测试。背景介绍撰写本文的兴趣也是来自于前......
  • OpenCV图像无缝融合-seamlessClone介绍与使用(Python/C++源码)
    导读本期将介绍并演示OpenCV使用seamlessClone实现图像无缝融合效果。介绍seamlessClone是OpenCV3后添加的函数,使用此函数可以轻松将一幅图像中的指定目标复制后粘贴到另一......
  • 创建阿里云镜像仓库imagePullSecrets
    1.docker登录仓库,根据提示[root@ks-node05~]#dockerlogin--username=mq-ops2@1910650714221478registry-vpc.cn-hangzhou.aliyuncs.com#因为是阿里云ECS,所以用了......