Win32_Directory 클래스의 이름 바꾸기 메서드
RenameWMI 클래스 메서드는 개체 경로에 지정된 디렉터리 항목 파일의 이름을 바꿉니다. 대상이 다른 드라이브에 있거나 기존 논리 파일을 덮어써야 하는 경우에는 이름 바꾸기가 지원되지 않습니다.
이 항목에서는 MOF(Managed Object Format) 구문을 사용합니다. 이 메서드를 사용하는 방법에 대한 자세한 내용은 메서드 호출을 참조 하세요.
구문
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단계 메서드를 제공하지 않습니다. 대신 폴더 이동에는 일반적으로 다음 두 단계가 포함됩니다.
- 1. 폴더를 새 위치 2로 복사합니다. 원래 폴더 삭제
이 2단계 프로세스의 한 가지 예외는 폴더를 동일한 드라이브의 새 위치로 이동하는 것입니다. 예를 들어 C:\Temp를 C:\Scripts\Temporary Files\Archive로 이동하려는 경우를 가정합니다. 현재 위치와 새 위치가 동일한 드라이브에 있는 한 Rename 메서드를 호출하고 새 위치를 메서드 매개 변수로 전달하여 폴더를 이동할 수 있습니다. 이 방법을 사용하면 한 단계로 폴더를 효과적으로 이동할 수 있습니다. 그러나 현재 드라이브와 새 드라이브가 다른 경우 스크립트가 실패합니다. C:\Temp의 이름을 D:\Temp로 바꾸려는 시도가 실패하고 "드라이브가 동일하지 않습니다." 오류가 발생합니다.
예제
다음 코드에서는 Rename 메서드를 사용하여 C:\Scripts 폴더를 C:\관리s\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 |
|