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
CIMWin32.mof
DLL
CIMWin32.dll

另请参阅

操作系统类

Win32_Directory