我正在尝试使用新的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
时失败。
解决方法是
std::filesystem::path::remove_filename
以获取目录路径。std::filesystem::create_directories
制作目录。std::filesystem::copy
复制所需文件。我想知道是否有可能只用一个电话来实现这个三步法。谢谢。
答案 0 :(得分:0)
std::filesystem::copy("(some directory)", "(some other directory)", std::filesystem::copy_options::recursive);