首页后端开发其他后端知识C++中如何实现创建文件夹?教你四个方法

C++中如何实现创建文件夹?教你四个方法

时间2024-03-28 16:00:03发布访客分类其他后端知识浏览1031
导读:这篇文章给大家分享的是C++中实现创建文件夹的方法。小编觉得挺实用的,因此分享给大家做个参考,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。 提前说明:从参数角度上看,其实都应该使用 char*,但是为了...

这篇文章给大家分享的是C++中实现创建文件夹的方法。小编觉得挺实用的,因此分享给大家做个参考,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。

提前说明:从参数角度上看,其实都应该使用 char*,但是为了方便这里使用的都是 string。在 SO 上找到一个方式把 string 转成 char*,就是调用 string 的 c_str() 函数。

本文示例都是在 E:\database 路径下创建一个叫做 testFolder 的文件夹。

使用 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 函数

关于 direct.h 我觉得 维基百科 上介绍的不错

#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;

}
    

调用 MFC 封装好的接口函数

不推荐此方法,出错的话会有点麻烦。

#include iostream>
    
#include shlwapi.h>
    
using namespace std;


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

    if (!PathIsDirectory(folderPath.c_str()))  // 是否有重名文件夹
    {
    
        ::CreateDirectory(folderPath.c_str(), 0);

    }
    

    return 0;

}
    

如果你出现了错误 undefined reference to imp__PathIsDirectory @ 4,可以参考 undefined reference to imp PathIsDirectory
下面的方法是基于你详细阅读完上述链接后的前提下给出的

说我在 CodeBlocks 下解决该问题的方法:
第一步:在项目上右击,选择 Build Options

第二步: 在 Linker Settings 里添加 libshlwapi.a 文件

关于C++中实现创建文件夹的方法就介绍到这,上述方法和示例具有一定的借鉴价值,感兴趣的朋友可以参考,希望能对大家有帮助,想要了解更多大家可以关注网络其它的相关文章。

文本转载自PHP中文网

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: C++中如何实现创建文件夹?教你四个方法
本文地址: https://pptw.com/jishu/655045.html
Java里怎样去获取当前时间,用什么方法? JavaScript面向对象的Object类型什么用

游客 回复需填写必要信息