Win32_Directory 类的 Copy 方法
CopyWMI 类方法将对象路径中指定的逻辑目录条目文件或目录复制到输入参数指定的位置。 如果需要覆盖现有逻辑文件,则不支持复制。
本主题使用托管对象格式 (MOF) 语法。 有关使用此方法的详细信息,请参阅 调用方法。
语法
uint32 Copy(
string FileName
);
参数
-
FileName
-
文件 (或目录) 副本的完全限定名称。 示例:c:\temp\newdirectory
返回值
如果成功复制文件,则返回值 0 (零) ,以及指示错误的任何其他数字。
-
0
-
请求已成功。
-
2
-
访问被拒绝。
-
8
-
发生了未指定的故障。
-
9
-
指定的名称无效。
-
10
-
指定的对象已存在。
-
11
-
文件系统不是 NTFS。
-
12
-
平台不是 Windows。
-
13
-
驱动器不同。
-
14
-
目录不为空。
-
15
-
存在共享冲突。
-
16
-
指定的启动文件无效。
-
17
-
不保留操作所需的特权。
-
21
-
指定的参数无效。
备注
通常需要将文件夹从一个位置复制到另一个位置。 例如,可以将文件夹从一台服务器复制到另一台服务器,以创建该文件夹的备份副本。 或者,你可能有一个需要复制到用户工作站的模板文件夹,或者应该复制到所有 DNS 服务器的脚本文件夹。
Win32_Directory Copy 方法使你可以将文件夹从一个位置复制到另一个位置(在同一台计算机上 (例如,将文件夹从驱动器 C 复制到驱动器 D) 或远程计算机上)。 若要复制文件夹,请返回要复制的文件夹的实例,然后调用 Copy 方法,将文件夹新副本的目标位置作为参数传递。 例如,此代码行将文件夹复制到驱动器 F 上的 Scripts 文件夹:
objFolder.Copy("F:\Scripts")
执行 Copy 方法时,WMI 不会覆盖现有文件夹。 这意味着,如果目标文件夹存在,则复制操作会失败。 例如,假设你有一个名为 Scripts 的文件夹,并尝试将该文件夹复制到名为 \\atl-fs-01\archive 的远程共享。 如果该共享上已存在名为 Scripts 的文件夹,则复制操作将失败。
示例
以下代码示例取自 使用 WMI 复制文件夹,使用 Copy 方法将文件夹 C:\Scripts 复制到 D:\Archive。
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFolders = objWMIService.ExecQuery( _
"Select * from Win32_Directory where Name = 'c:\\Scripts'")
For Each objFolder in colFolders
errResults = objFolder.Copy("D:\Archive")
Next
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista |
最低受支持的服务器 |
Windows Server 2008 |
命名空间 |
Root\CIMV2 |
MOF |
|
DLL |
|