Можно ли автоматически создавать несуществующие каталоги при копировании файла?

Я экспериментирую с новым std::filesystem библиотека.
Я хочу сделать программу, которая копирует файлы, перечисленные пользователем в заданный каталог. Но наивный подход с использованием std::filesystem::copy или же std::filesystem::copy_file не работает, когда указанный файл находится в подкаталоге.

Например, предположим, что я хочу скопировать некоторые файлы в (some directory), сказать

(some directory)/file1.ext
(some directory)/subdir/file2.ext

в (some other directory)так, чтобы я получил

(some other directory)/file1.ext
(some other directory)/subdir/file2.ext

Каталог (some directory) могут содержать файлы или каталоги и т. д., которые не нужно копировать. Если я использую только std::filesystem::copy, затем file1.ext успешно, но files2.ext не удается, когда нет (some other directory)/subdir,

Обходной путь был

  1. Вызов std::filesystem::path::remove_filename чтобы получить путь к каталогу.
  2. Вызов std::filesystem::create_directories создавать каталоги, если они не существуют.
  3. Вызов std::filesystem::copy скопировать нужный файл.

Интересно, возможно ли сделать этот трехступенчатый подход всего за один звонок? Спасибо.

0

Решение

std::filesystem::copy("(some directory)", "(some other directory)", std::filesystem::copy_options::recursive);

Источник: http://en.cppreference.com/w/cpp/filesystem/copy_options

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]