Share via


MoveFile 함수(winbase.h)

자식을 포함한 기존 파일 또는 디렉터리를 이동합니다.

파일을 이동하는 방법을 지정하려면 MoveFileEx 또는 MoveFileWithProgress 함수 사용합니다.

이 작업을 트랜잭션 작업으로 수행하려면 MoveFileTransacted 함수를 사용합니다.

구문

BOOL MoveFile(
  [in] LPCTSTR lpExistingFileName,
  [in] LPCTSTR lpNewFileName
);

매개 변수

[in] lpExistingFileName

로컬 컴퓨터의 파일 또는 디렉터리의 현재 이름입니다.

기본적으로 이름은 MAX_PATH 문자로 제한됩니다. 이 제한을 32,767자로 확장하려면 경로에 "\\?\"를 앞에 추가합니다. 자세한 내용은 파일 이름 지정, 경로 및 네임스페이스를 참조하세요.

Windows 10 버전 1607부터 "\\?\"를 앞에 추가하지 않고 MAX_PATH 제한을 제거하도록 옵트인할 수 있습니다. 자세한 내용은 파일, 경로 및 네임스페이스의 "최대 경로 길이 제한" 섹션을 참조하세요.

[in] lpNewFileName

파일 또는 디렉터리의 새 이름입니다. 새 이름이 아직 없어야 합니다. 새 파일이 다른 파일 시스템 또는 드라이브에 있을 수 있습니다. 새 디렉터리가 동일한 드라이브에 있어야 합니다.

기본적으로 이름은 MAX_PATH 문자로 제한됩니다. 이 제한을 32,767자로 확장하려면 경로에 "\\?\"를 앞에 추가합니다. 자세한 내용은 파일 이름 지정, 경로 및 네임스페이스를 참조하세요.

Windows 10 버전 1607부터 "\\?\"를 앞에 추가하지 않고 MAX_PATH 제한을 제거하도록 옵트인할 수 있습니다. 자세한 내용은 파일, 경로 및 네임스페이스의 "최대 경로 길이 제한" 섹션을 참조하세요.

반환 값

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

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

MoveFile 함수는 동일한 디렉터리 또는 디렉터리 간에 파일 또는 디렉터리(해당 자식 포함)를 이동(이름 바꾸기)합니다. 한 가지 주의할 점은 대상이 다른 볼륨에 있을 때 디렉터리 이동 시 MoveFile 함수가 실패한다는 것입니다.

파일이 볼륨 간에 이동되는 경우 MoveFile 은 파일과 함께 보안 설명자를 이동하지 않습니다. 파일에 대상 디렉터리에 기본 보안 설명자가 할당됩니다.

MoveFile 함수는 링크 추적 서비스와 작업을 조정하므로 링크 원본이 이동될 때 추적할 수 있습니다.

Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 Yes
SMB 3.0 TFO(투명 장애 조치(failover)) 주석 참조
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 주석 참조
CsvFS(클러스터 공유 볼륨 파일 시스템) Yes
ReFS(Resilient File System) Yes
 

SMB 3.0은 연속 가용성 기능이 있는 파일 공유에서 대체 데이터 스트림의 이름 바꾸기를 지원하지 않습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

CopyFile

파일 관리 함수

MoveFileEx

MoveFileTransacted

MoveFileWithProgress