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