NOTICE


 MoveFileEx( )이라고 하면 일반적으로 파일이나 폴더를 이동하는 함수로 이해할 것입니다. 그러나 특정 플래그 값을 사용하면 MoveFileEx( ) 함수로 파일을 복사하거나 삭제 할 수 있습니다. 단 이 함수는 재부팅 과정에서 적용됩니다.


 먼저 MoveFileEx( ) 함수의 원형을 살펴보겠습니다.


BOOL WINAPI MoveFileEx( _In_      LPCTSTR    lpExistingFileName, _In_opt_  LPCTSTR    lpNewFileName, _In_      DWORD      dwFlags 

);


 lpExistingFileName과 lpNewFileName에는 기존 파일 경로와 이동하고자 하는 경로가 들어 갑니다. 그리고 dwFlags 파라미터에는 플래그 값이 들어갑니다. 이때 dwFlags에 들어갈 수 있는 플래그 입니다.


 플래그

설  명 

 MOVEFILE_COPY_ALLOWED

 다른 하드 볼륨으로 파일을 이동하도록 해주는 옵션이다.

 MOVEFILE_DELAY_UNTIL_REBOOT

 시스템을 재시작해야 적용된다. 즉, 파일 이동을 명령하였다고 하더라도 시스템을 재시작해야 된다는 것을 의미한다. admin 권한을 가진다.

 MOVEFILE_REPLACE_EXISTING

 덮어 쓰기를 할 수 있는 옵션이다.

 MOVEFILE_WRITE_THROUGH

 카피되는 파일이 디스크에 완전히 쓰여지기 전까지는 반환되지 않는다.


 여기서 MOVEFILE_DELAY_UNTIL_REBOOT을 사용하면 재부팅 과정에서 파일을 삭제하거나 복사할 수 있습니다.

호출 방식은 다음과 같습니다.



 이상으로 '[Tip] MoveFileEx( ) 함수를 사용해 파일 삭제, 복사하기'에 대한 포스트를 마치겠습니다.