2

我正在处理以下代码

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

 }

上述功能成功将文件夹和子文件夹复制到目标路径,我得到的唯一问题是目标路径中不存在文件夹时的 Windows 提示,Windows 提示“您要创建此文件夹”,我该如何绕过这个提示和windows显示的windows进度条。

4

1 回答 1

1

你需要使用这个标志:FOF_NOCONFIRMMKDIR

s.fFlags = FOF_SILENT | FOF_NOCONFIRMMKDIR;

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

SHFILEOPSTRUCT structure

于 2013-10-04T07:30:23.050 回答