Функция create_directory
Функция create_directory создает новую директорию по указанному пути. В первый параметр мы передаем путь к создаваемой директории, а во второй - объект ошибки error_code (необязательный параметр). Если директория уже существует, функция возвращает false, а если создание прошло успешно - true.
Синтаксис
bool create_directory(const path& p);
bool create_directory(const path& p, error_code& ec);
Пример
Давайте создадим директорию test_dir в текущей рабочей папке:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
bool res = fs::create_directory("test_dir");
if (res) {
cout << "Directory created" << endl;
} else {
cout << "Directory already exists" << endl;
}
return 0;
}
Результат выполнения кода:
"Directory created"
Пример
Давайте попробуем создать директорию, которая уже существует, и проверим результат:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::create_directory("test_dir");
bool res = fs::create_directory("test_dir");
if (res) {
cout << "Directory created" << endl;
} else {
cout << "Directory already exists" << endl;
}
return 0;
}
Результат выполнения кода:
"Directory already exists"
Пример
Давайте создадим директорию с использованием объекта ошибки для проверки на исключительные ситуации:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
error_code ec;
bool res = fs::create_directory("new_dir", ec);
if (ec) {
cout << "Error: " << ec.message() << endl;
} else if (res) {
cout << "Directory created" << endl;
} else {
cout << "Directory already exists" << endl;
}
return 0;
}
Результат выполнения кода:
"Directory created"
Смотрите также
-
функция
create_directories,
которая создает несколько директорий рекурсивно -
функция
remove,
которая удаляет файл или пустую директорию -
функция
exists,
которая проверяет существование пути -
функция
is_directory,
которая проверяет, является ли путь директорией