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

时间:2013-10-04 07:25:29

标签: c++ windows winapi visual-c++

我正在处理以下代码

 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提示“是否要创建此文件夹”,怎么能我绕过了这个提示和窗口显示的窗口进度条。

1 个答案:

答案 0 :(得分:1)

您需要使用此标志:FOF_NOCONFIRMMKDIR

s.fFlags = FOF_SILENT | FOF_NOCONFIRMMKDIR;

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

SHFILEOPSTRUCT structure