Копирование файлов в С++ с помощью std::filesystem::copy

Подскажите пожалуйста, пытаюсь с помощью std::filesystem::copy скопировать папку в другую папку, но копируются только файлы из копируемой папки в указанную папку:

#include <iostream>
#include <string>
#include <filesystem>

int main()
{

static std::filesystem::path my_path_from;
static std::filesystem::path my_path_to;

my_path_from = L"С:\\my_folder_1\\";
my_path_to =   L"С:\\my_folder_2\\";


std::filesystem::copy_options my_options;
my_options = std::filesystem::copy_options::none;

try
{
std::filesystem::copy(my_path_from, my_path_to,.my_options);
}
catch(const std::filesystem::filesystem_error& e)
{
std::cout<< e.what()<<std::endl;   //Ошибки не отлавливаются, все завершается успешно.
}
}

В папке my_folder_1 находится несколько файлов и еще одна папка, однако копируются только файлы. Не могу понять, как скопировать все содержимое папки my_folder_1 включая папки и подпапки ?

ЗЫ:Все понял спасибо. Проблема была в этом, если опцию recursive использовать в такой комбинации my_path_from и my_path_ещ - то создается бесконечно кол-во папок, пока размер пути не вызовет ошибку:

#include <iostream>
#include <string>
#include <filesystem>

int main()
{

static std::filesystem::path my_path_from;
static std::filesystem::path my_path_to;

my_path_from = L"С:\\my_folder_1\\";
my_path_to =   L"С:\\my_folder_1\\2\\";


std::filesystem::copy_options my_options;
my_options = std::filesystem::copy_options::none;

try
{
std::filesystem::copy(my_path_from, my_path_to,.my_options);
}
catch(const std::filesystem::filesystem_error& e)
{
std::cout<< e.what()<<std::endl;   //Ошибки не отлавливаются, все завершается успешно.
}
}

Структура папки С:\my_folder_1\:

\1\

\2\

Хотя это и странно, как же мне тогда скопировать папку 1 в папку 2.


Ответы (1 шт):

Автор решения: Cppeshnik

Ну как вариант создайте папку с таким же именем в другой

system("mkdir \"c:\\my_folder_2\\my_folder_1\"")

и потом скопируйте файлы уже туда(если я правильно понял вопрос)

→ Ссылка