C / C ++复制具有自动递归文件夹/目录创建的文件 [英] C/C++ Copy file with automatic recursive folder/directory creation
问题描述
C:\ Data\output.txt
复制到 D:\ Temp \ Data \ output .TXT
。但是,目标文件夹 D:\ Temp
和 D:\ Temp \ Data
存在。在这种情况下,这个API只是失败。 是否有一个方便的API,可以自动递归地创建复制目录结构?当然,我可以做出这样的功能,但我希望有人已经做出了这个功能。 解决方案
SHFileOperation
应该诀窍。从MSDN:
复制和移动操作可以指定
不存在
的目标目录。在这种情况下,系统
尝试创建它们,通常
显示一个对话框,询问用户
是否需要创建新的
目录。要禁止这个对话框
,并且静默地创建
目录,请在中设置
。FOF_NOCONFIRMMKDIR
标志fFlags
In Win32 API, there is CopyFile that literally copies a file. However, this API doesn't create folders. For example, I'd like to copy C:\Data\output.txt
to D:\Temp\Data\output.txt
. But, the target folders, D:\Temp
and D:\Temp\Data
', do not exist. In this case, this API just fails.
Is there a handy API that can automatically and recursively create directory structure on copy? Definitely, I can make such function, but I expect someone already made the function.
SHFileOperation
should do the trick. From MSDN:
Copy and Move operations can specify destination directories that do not exist. In those cases, the system attempts to create them and normally displays a dialog box to ask the user if they want to create the new directory. To suppress this dialog box and have the directories created silently, set the
FOF_NOCONFIRMMKDIR
flag infFlags
.
这篇关于C / C ++复制具有自动递归文件夹/目录创建的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!