C++创建文件夹

使用DOS命令 (测试成功)

#include 
using namespace std;

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

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

    return 0;
}

QT(测试成功)

    QString dir_str = ".//file";
    // 检查目录是否存在,若不存在则新建
    QDir dir;

    if (!dir.exists(dir_str)) {
        bool res = dir.mkpath(dir_str);
        ui->textEdit->append("创建文件夹file");
        ui->textEdit->append(QString::number(res));
    }

MFC:没有测试

#include 
#include 
using namespace std;

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

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

    return 0;
}

C语言(可以在当前目录创建,但是不能在指定目录创建)

#include 
#include 

//(需要 #include  以及 #include 
// 创建文件夹
void CreateFolder()
{
    //文件夹名称
    char folderName[] = "E:\\database\\testFolder";

    // 文件夹不存在则创建文件夹
    if (_access(folderName, 0) == -1)
    {
        _mkdir(folderName);
    }
}

//然后在main函数中调用CreateFolder函数即可
int main()
{
       CreateFolder();

       return 0; 
}

调用 Windows API 函数(测试没有成功)

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

使用头文件 direct.h 中的 access 和 mkdir 函数(测试没有成功)

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

你可能感兴趣的:(qt,c++,c++,qt)