复制文件时是否可以自动创建不存在的目录?



我正在试验新的std::filesystem库。 我希望制作一个程序,将用户列出的文件复制到给定的目录中。但是,当列出的文件位于子目录中时,使用std::filesystem::copystd::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成功,但在没有(some other directory)/subdirfiles2.ext失败。

解决方法是

  1. 调用std::filesystem::path::remove_filename以获取目录路径。
  2. 调用std::filesystem::create_directories以创建目录(如果它们不存在)。
  3. 调用std::filesystem::copy以复制所需的文件。

我想知道是否有可能将这种 3 步方法仅用于一个电话。谢谢。

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

来源: http://en.cppreference.com/w/cpp/filesystem/copy_options

相关内容

  • 没有找到相关文章

最新更新