Folder.CopyHere 方法

将一个或多个项目复制到文件夹。

语法

Folder.CopyHere(
  vItem,
  [ vOptions ]
)

参数

vItem

类型: Variant

要复制的一个或多个项。 这可以是表示文件名、 FolderItem 对象或 FolderItems 对象的字符串。

vOptions [可选]

类型: Variant

复制操作的选项。 此值可以是零,也可以是以下值的组合。 这些值基于为与 C++ SHFILEOPSTRUCT 结构的 fFlags 成员一起使用而定义的标志。 每个 Shell 命名空间都必须提供这些标志的自己的实现,并且每个命名空间可以选择忽略部分甚至全部这些标志。 这些标志不是按名称为 Visual Basic、VBScript 或 JScript 定义的,因此必须自行定义它们或使用其数值等效项。

注意

在某些情况下,例如压缩的 (.zip) 文件,某些选项标志可能会被设计忽略。

 

(4)

不显示进度对话框。

(8)

如果已存在具有目标名称的文件,请在移动、复制或重命名操作中为正在操作的文件提供新名称。

(16)

对于显示的任何对话框,使用“Yes to All”做出响应。

(64)

如果可能,请保留撤消信息。

(128)

仅当指定通配符文件名 (*.*) 时,才对文件执行操作。

(256)

显示进度对话框,但不显示文件名。

(512)

如果操作需要创建新目录,请不要确认创建新目录。

(1024)

如果发生错误,则不显示用户界面。

(2048)

版本 4.71。 请勿复制文件的安全属性。

(4096)

仅在本地目录中运行。 不要以递归方式操作到子目录。

(8192)

版本 5.0。 不要将连接的文件作为组复制。 仅复制指定的文件。

返回值

此方法不返回值。

备注

不会向调用程序发出指示复制已完成的通知。

注意

并非所有方法都是针对所有文件夹实现的。 例如,不为 控制面板 文件夹 (CSIDL_CONTROLS) 实现 ParseName 方法。 如果尝试调用未实现的方法,则会引发0x800A01BD (小数 445) 错误。

 

示例

以下示例使用 CopyHere 将 Autoexec.bat 文件从根目录复制到 C:\Windows 目录。 显示 JScript、VBScript 和 Visual Basic 的正确用法。

Jscript:

<script language="JScript">
    function fnCopyHereJ()
    {
        var objShell = new ActiveXObject("shell.application");
        var objFolder = new Object;
        
        objFolder = objShell.NameSpace("C:\\WINDOWS");
        if (objFolder != null)
        {
            objFolder.CopyHere("C:\\AUTOEXEC.BAT");
        }
    }
 </script>

VBScript:

<script language="VBScript">
    function fnCopyHereVB()
        dim objShell
        dim objFolder
        
        set objShell = CreateObject("shell.application")
        set objFolder = objShell.NameSpace("C:\WINDOWS")
 
        if not objFolder is nothing then
            objFolder.CopyHere("C:\AUTOEXEC.BAT")
        end if
 
        set objShell = nothing
        set objFolder = nothing
    end function
</script>

Visual Basic:

Private Sub btnCopyHere_Click()
    Dim objShell  As Shell
    Dim objFolder As Folder
    
    Set objShell = New Shell
    Set objFolder = objShell.NameSpace("C:\WINDOWS")
 
    If (Not objFolder Is Nothing) Then
        objFolder.CopyHere ("C:\AUTOEXEC.BAT")
    End If
 
    Set objFolder = Nothing
    Set objShell = Nothing
End Sub

要求

要求
最低受支持的客户端
Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Shldisp.h
IDL
Shldisp.idl
DLL
Shell32.dll (版本 4.71 或更高版本)

另请参阅

文件夹