ReplaceFileA 함수(winbase.h)
한 파일을 다른 파일로 바꾸고 원본 파일의 백업 복사본을 만드는 옵션으로 바꿉니다. 대체 파일은 대체된 파일의 이름과 해당 ID를 가정합니다.
통사론
BOOL ReplaceFileA(
[in] LPCSTR lpReplacedFileName,
[in] LPCSTR lpReplacementFileName,
[in, optional] LPCSTR lpBackupFileName,
[in] DWORD dwReplaceFlags,
LPVOID lpExclude,
LPVOID lpReserved
);
매개 변수
[in] lpReplacedFileName
바꿀 파일의 이름입니다.
기본적으로 이름은 MAX_PATH 문자로 제한됩니다. 이 제한을 32,767자로 확장하려면 경로 앞에 "\\?\"를 추가합니다. 자세한 내용은 이름 지정 파일, 경로 및 네임스페이스참조하세요.
팁
Windows 10 버전 1607부터 "\\?\" 앞에 추가하지 않고 MAX_PATH 제한을 제거하도록 옵트인할 수 있습니다. 자세한 내용은 명명 파일, 경로 및 네임스페이스의 "최대 경로 길이 제한" 섹션을.
이 파일은 GENERIC_READ, DELETE및 SYNCHRONIZE 액세스 권한으로 열립니다. 공유 모드가 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE.
호출자는 바꿀 파일에 대한 쓰기 권한이 있어야 합니다. 자세한 내용은 파일 보안 및 액세스 권한참조하세요.
[in] lpReplacementFileName
lpReplacedFileName 파일을 바꿀 파일의 이름입니다.
기본적으로 이름은 MAX_PATH 문자로 제한됩니다. 이 제한을 32,767자로 확장하려면 경로 앞에 "\\?\"를 추가합니다. 자세한 내용은 이름 지정 파일, 경로 및 네임스페이스참조하세요.
팁
Windows 10 버전 1607부터 "\\?\" 앞에 추가하지 않고 MAX_PATH 제한을 제거하도록 옵트인할 수 있습니다. 자세한 내용은 명명 파일, 경로 및 네임스페이스의 "최대 경로 길이 제한" 섹션을.
함수는 모든 특성과 ACL을 유지할 수 있도록 SYNCHRONIZE, GENERIC_READ, GENERIC_WRITE, DELETE및 WRITE_DAC 액세스 권한으로 이 파일을 열려고 시도합니다. 이 작업이 실패하면 함수는 SYNCHRONIZE, GENERIC_READ, DELETE및 WRITE_DAC 액세스 권한으로 파일을 열려고 시도합니다. 공유 모드가 지정되지 않았습니다.
[in, optional] lpBackupFileName
lpReplacedFileName 파일의 백업 복사본으로 사용할 파일의 이름입니다. 이 매개 변수가 NULL
기본적으로 이름은 MAX_PATH 문자로 제한됩니다. 이 제한을 32,767자로 확장하려면 경로 앞에 "\\?\"를 추가합니다. 자세한 내용은 이름 지정 파일, 경로 및 네임스페이스참조하세요.
팁
Windows 10 버전 1607부터 "\\?\" 앞에 추가하지 않고 MAX_PATH 제한을 제거하도록 옵트인할 수 있습니다. 자세한 내용은 명명 파일, 경로 및 네임스페이스의 "최대 경로 길이 제한" 섹션을.
[in] dwReplaceFlags
대체 옵션입니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.
lpExclude
나중에 사용할 수 있습니다.
lpReserved
나중에 사용할 수 있습니다.
반환 값
함수가 성공하면 반환 값은 0이 아닌 값입니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 얻으려면 GetLastError호출합니다. 다음은 이 함수에 대한 가능한 오류 코드입니다.
반환 코드/값 | 묘사 |
---|---|
|
대체 파일의 이름을 바꿀 수 없습니다. lpBackupFileName 지정한 경우 대체 및 대체 파일은 원래 파일 이름을 유지합니다. 그렇지 않으면 대체된 파일이 더 이상 존재하지 않으며 대체 파일이 원래 이름 아래에 있습니다. |
|
대체 파일을 이동할 수 없습니다. 대체 파일은 원래 이름으로 계속 존재합니다. 그러나 대체 중인 파일에서 파일 스트림 및 특성을 상속했습니다. 바꿀 파일은 여전히 다른 이름으로 존재합니다. lpBackupFileName 지정하면 대체된 파일의 이름이 됩니다. |
|
대체된 파일을 삭제할 수 없습니다. 교체된 파일과 대체 파일은 원래 파일 이름을 유지합니다. |
ERROR_INVALID_PARAMETER같은 다른 오류가 반환되면 교체된 파일과 대체 파일은 원래 파일 이름을 유지합니다. 이 시나리오에서는 백업 파일이 존재하지 않으며 대체 파일이 교체된 파일의 모든 특성과 스트림을 상속한다고 보장할 수 없습니다.
발언
- 생성 시간
- 짧은 파일 이름
- 개체 식별자
- DACL
- 보안 리소스 특성
- 암호화
- 압축
- 대체 파일에 명명된 스트림이 아직 없습니다.
Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 원래 파일에 대한 보안 리소스 특성(ATTRIBUTE_SECURITY_INFORMATION)은 Windows 8 및 Windows Server 2012까지 보존되지 않습니다.
선택적 초기화사용하여 대체 파일을 보호하는 경우 대체 파일은 대체 파일의 엔터프라이즈 ID로 보호됩니다.
백업 파일, 교체된 파일 및 대체 파일은 모두 동일한 볼륨에 있어야 합니다.
파일을 삭제하거나 이름을 바꾸려면 파일에 대한 삭제 권한이 있거나 부모 디렉터리에서 자식 권한을 삭제해야 합니다. 자식 삭제 및 삭제를 제외한 모든 액세스 권한이 있는 디렉터리를 설정하고 새 파일의 DACL을 상속하는 경우 파일을 삭제하지 않고도 파일을 만들 수 있어야 합니다. 그러나 파일을 만들면 파일을 만들 때 반환된 핸들에 대해 요청하는 모든 액세스 권한을 얻을 수 있습니다. 파일을 만들 때 삭제 권한을 요청한 경우 해당 핸들을 사용하지만 다른 핸들은 사용하지 않고 파일 이름을 삭제하거나 이름을 바꿀 수 있습니다.
메모
winbase.h 헤더는 REPLACEFile을 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |
참고 항목
copyFile
copyFileEx
MoveFile
moveFileEx
moveFileWithProgress