21xrx.com
2024-09-20 00:08:10 Friday
登录
文章检索 我的文章 写文章
如何在C++中创建文件夹,且若已存在则不创建?
2023-07-05 03:55:43 深夜i     --     --
C++ 文件夹 创建 存在 避免重复

在C++编程中,创建文件夹并且判断这个文件夹是否已经存在是一个非常基本和常见的任务。下面将会介绍如何使用C++实现这个操作。

C++中创建文件夹的函数是`_mkdir()`,该函数定义在`direct.h`头文件中。使用该函数需要传入一个字符串参数,参数即代表着你想要创建的文件夹的路径。如果要创建嵌套的文件夹,则需要分别传入每个子文件夹的路径。

在使用`_mkdir()`函数前,需要通过`stat()`函数判断该文件夹是否已经存在。`stat()`函数定义在`sys/stat.h`头文件中。该函数会返回一个结构体,里面包含着文件或目录的信息。其中,若参数对应的文件夹存在,则该函数的返回值为0;若不存在则为-1。因此,我们可以通过`stat()`函数的返回值来判断文件夹是否已经存在。

下面是一个简单的C++代码示例,展示如何创建文件夹并判断文件夹是否已经存在:


#include <iostream>

#include <direct.h>

#include <sys/stat.h>

bool CreateFolder(const char* folderPath)

{

  struct stat folderInfo;

  if (stat(folderPath, &folderInfo) != 0)

  {

    if (_mkdir(folderPath) == 0)

    

      std::cout << "Folder created successfully." << std::endl;

      return true;

    

    else

    

      std::cout << "Failed to create folder." << std::endl;

      return false;

    

  }

  else if (folderInfo.st_mode & S_IFDIR)

  

    std::cout << "Folder already exists." << std::endl;

    return true;

  

  return false;

}

int main()

{

  const char* folderPath = "C:\\Users\\UserName\\NewFolder";

  CreateFolder(folderPath);

  return 0;

}

上述代码使用了一个`CreateFolder()`函数,该函数的参数为一个字符串,代表你想要创建的文件夹的路径。该函数中,首先使用`stat()`函数来判断文件夹是否已经存在。如果文件夹不存在则使用`_mkdir()`函数来创建文件夹,并返回true。如果创建文件夹失败,则返回false。如果文件夹已经存在,则直接返回true。同时,该函数还会在控制台输出文件夹创建状态的信息。

最后,代码中还包含了一个示例,演示了如何调用`CreateFolder()`函数来创建文件夹。

总结来说,使用C++来创建文件夹并判断文件夹是否已经存在是一个简单的操作,只需要使用`_mkdir()`和`stat()`两个函数即可。如果你需要在程序中动态地创建文件夹来存储数据或者文件,以上的方法一定会对你有帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复