VS 2010 中 win32 应用程序中的文件夹复制

Folder Copy in win32 application in VS 2010

本文关键字:文件夹 复制 win32 2010 VS 应用程序      更新时间:2023-10-16

我正在处理以下代码

 void copyDir(void)
 {
    SHFILEOPSTRUCT s = { 0 };
    s.hwnd = hwnd;
    s.wFunc = FO_COPY;
    s.pTo = "E:\dest";
    s.pFrom = "Dir\*";
    s.fFlags = FOF_SILENT;
    SHFileOperation( &s );
 }

上述功能成功地将文件夹和子文件夹复制到目标路径,我遇到的唯一问题是当目标路径中不存在文件夹时出现 Windows 提示,Windows 提示"您要创建此文件夹吗",如何绕过此提示和窗口显示的窗口进度条。

你需要使用这个标志:FOF_NOCONFIRMMKDIR

s.fFlags = FOF_SILENT | FOF_NOCONFIRMMKDIR;

复制和移动操作可以指定不存在的目标目录。在这些情况下,系统会尝试创建它们,并且通常会显示一个对话框,询问用户是否要创建新目录。若要禁止显示此对话框并以静默方式创建目录,请在 fFlag 中设置 FOF_NOCONFIRMMKDIR 标志

SHFILEOPSTRUCT structure