Win32_Directory 类的 Rename 方法
RenameWMI 类方法重命名对象路径中指定的目录条目文件。 如果目标位于另一个驱动器上,或者需要覆盖现有逻辑文件,则不支持重命名。
本主题使用托管对象格式 (MOF) 语法。 有关使用此方法的详细信息,请参阅 调用方法。
语法
uint32 Rename(
string FileName
);
参数
-
FileName
-
文件 (或目录) 的完全限定的新名称。 示例:c:\temp\newfile.txt。
返回值
如果成功重命名文件,则返回值 0 (零) ,以及指示错误的任何其他数字。
-
0
-
请求已成功。
-
2
-
访问被拒绝。
-
8
-
发生了未指定的故障。
-
9
-
指定的名称无效。
-
10
-
指定的对象已存在。
-
11
-
文件系统不是 NTFS。
-
12
-
平台不是 Windows。
-
13
-
驱动器不同。
-
14
-
目录不为空。
-
15
-
存在共享冲突。
-
16
-
指定的启动文件无效。
-
17
-
不保留操作所需的特权。
-
21
-
指定的参数无效。
备注
若要重命名文件夹,请先绑定到有问题的文件夹,然后调用 Rename 方法。 作为 方法的唯一参数,请将文件夹的新名称作为完整路径名称传递。 例如,如果要将 C:\Scripts\Logs\Backup 中的文件夹重命名为 C:\Scripts\Archive,则必须传递 C:\Scripts\Archive 作为完整的文件夹名称。 仅传递文件夹名称 - 存档 - 会导致路径无效错误。
Win32_Directory 类不提供用于移动文件夹的一步方法。 相反,移动文件夹通常涉及两个步骤:
- 1. 将文件夹复制到其新位置 2。删除原始文件夹
此两步过程有一个例外,即将文件夹移动到同一驱动器上的新位置。 例如,假设你要将 C:\Temp 移动到 C:\Scripts\Temporary Files\Archive。 只要当前位置和新位置位于同一驱动器上,只需调用 Rename 方法并将新位置作为方法参数传递即可移动文件夹。 此方法有效地允许你在一个步骤中移动文件夹。 但是,如果当前驱动器和新驱动器不同,则脚本将失败。 尝试将 C:\Temp 重命名为 D:\Temp 失败,出现“驱动器不同”错误。
示例
TechNet 库中 的“使用 WMI VBScript 移动文件夹” 示例中的以下代码使用 Rename 方法将文件夹 C:\Scripts 移动到 C:\Admins\Documents\Archive\VBScript。
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.Rename("C:\Admins\Documents\Archive\VBScript")
Next
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista |
最低受支持的服务器 |
Windows Server 2008 |
命名空间 |
Root\CIMV2 |
MOF |
|
DLL |
|