Копирование файлов в С++ с помощью 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 шт):
Ну как вариант создайте папку с таким же именем в другой
system("mkdir \"c:\\my_folder_2\\my_folder_1\"")
и потом скопируйте файлы уже туда(если я правильно понял вопрос)