Share via


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

참고 항목

운영 체제 클래스

Win32_Directory