다음을 통해 공유


ReplaceFileFromAppW 함수(fileapifromapp.h)

한 파일을 다른 파일로 바꾸며, 원본 파일의 백업 복사본을 만드는 옵션을 제공합니다. 이 함수는 유니버설 Windows 플랫폼 앱 보안 모델을 준수한다는 점을 제외하고 이 함수의 동작은 ReplaceFile과 동일합니다.

구문

WINSTORAGEAPI BOOL ReplaceFileFromAppW(
  LPCWSTR lpReplacedFileName,
  LPCWSTR lpReplacementFileName,
  LPCWSTR lpBackupFileName,
  DWORD   dwReplaceFlags,
  LPVOID  lpExclude,
  LPVOID  lpReserved
) noexcept;

매개 변수

lpReplacedFileName

"\\?\" 앞에 추가하지 않고 MAX_PATH 제한을 옵트아웃하는 방법에 대한 자세한 내용은 파일, 경로 및 네임스페이스의 "최대 경로 길이 제한" 섹션을 참조하세요.

이 파일은 GENERIC_READ, DELETESYNCHRONIZE 액세스 권한으로 열립니다. 공유 모드는 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE.

호출자는 바꿀 파일에 대한 쓰기 권한이 있어야 합니다. 자세한 내용은 파일 보안 및 액세스 권한을 참조하세요.

lpReplacementFileName

lpReplacedFileName 파일을 대체할 파일의 이름입니다.

"\\?\" 앞에 추가하지 않고 MAX_PATH 제한을 옵트아웃하는 방법에 대한 자세한 내용은 파일, 경로 및 네임스페이스의 "최대 경로 길이 제한" 섹션을 참조하세요.

함수는 모든 특성 및 ACL을 유지할 수 있도록 SYNCHRONIZE, GENERIC_READ, GENERIC_WRITE, DELETEWRITE_DAC 액세스 권한으로 이 파일을 열려고 시도합니다. 이 오류가 발생하면 함수는 SYNCHRONIZE, GENERIC_READ, DELETEWRITE_DAC 액세스 권한으로 파일을 열려고 시도합니다. 공유 모드가 지정되지 않았습니다.

lpBackupFileName

lpReplacedFileName 파일의 백업 복사본으로 사용할 파일의 이름입니다. 이 매개 변수가 NULL이면 백업 파일이 만들어지지 않습니다. 백업 파일에 대한 구현 세부 정보는 설명 섹션을 참조하세요.

"\\?\" 앞에 추가하지 않고 MAX_PATH 제한을 옵트아웃하는 방법에 대한 자세한 내용은 파일, 경로 및 네임스페이스의 "최대 경로 길이 제한" 섹션을 참조하세요.

dwReplaceFlags

대체 옵션입니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
REPLACEFILE_WRITE_THROUGH 0x00000001

이 값은 지원되지 않습니다.

REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002

대체된 파일에서 대체 파일로 정보(예: 특성 및 ACL)를 병합하는 동안 발생하는 오류를 무시합니다. 따라서 이 플래그를 지정하고 WRITE_DAC 액세스 권한이 없는 경우 함수는 성공하지만 ACL은 유지되지 않습니다.

REPLACEFILE_IGNORE_ACL_ERRORS 0x00000004

대체된 파일에서 대체 파일로 ACL 정보를 병합하는 동안 발생하는 오류를 무시합니다. 따라서 이 플래그를 지정하고 WRITE_DAC 액세스 권한이 없는 경우 함수는 성공하지만 ACL은 유지되지 않습니다. 이 값을 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 매크로를 0x0600 이상으로 정의합니다.

lpExclude

나중에 사용하기 위해 예약되어 있습니다.

lpReserved

나중에 사용하기 위해 예약되어 있습니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다. 다음은 이 함수에 대한 가능한 오류 코드입니다.

반환 코드/값 설명
ERROR_UNABLE_TO_MOVE_REPLACEMENT 1176(0x498)

대체 파일의 이름을 바꿀 수 없습니다. lpBackupFileName을 지정한 경우 대체 및 대체 파일은 원래 파일 이름을 유지합니다. 그렇지 않으면 대체된 파일이 더 이상 존재하지 않으며 대체 파일이 원래 이름 아래에 있습니다.

ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 1177(0x499)

대체 파일을 이동할 수 없습니다. 대체 파일은 원래 이름 아래에 여전히 존재합니다. 그러나 대체 중인 파일에서 파일 스트림 및 특성을 상속했습니다. 바꿀 파일은 여전히 다른 이름으로 존재합니다. lpBackupFileName을 지정하면 대체된 파일의 이름이 됩니다.

ERROR_UNABLE_TO_REMOVE_REPLACED 1175(0x497)

대체된 파일을 삭제할 수 없습니다. 대체된 파일과 대체 파일은 원래 파일 이름을 유지합니다.

 

ERROR_INVALID_PARAMETER 같은 다른 오류가 반환되면 대체된 파일과 대체 파일은 원래 파일 이름을 유지합니다. 이 시나리오에서는 백업 파일이 존재하지 않으며 대체 파일이 대체된 파일의 모든 특성과 스트림을 상속한다고 보장할 수 없습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 10, 버전 1803
머리글 fileapifromapp.h