문제

Windows에서 파일을 이동할 수있는 유틸리티를 작성하려고 노력하고 있으며 사용중인 파일을 찾을 때 해당 파일을 재부팅시 이동하도록 설정합니다.

MoveFileEx (http://msdn.microsoft.com/en-us/library/aa365240(vs.85).aspx)는 이것에 대한 올바른 호출이지만 getLasterror에서 어떤 오류 코드를 찾고 있는지 알 수 없습니다.http://msdn.microsoft.com/en-us/library/ms679360(vs.85).aspx) 파일이 사용중인 것을 확인합니다.

실제 권한 문제가있을 때 유틸리티가 실패하기를 원합니다. 어쨌든 당신은 쓰레기를 구별 할 수 있고 사용 중복 된 오류 오류를 구별 할 수 있습니까?

또한 사용자의 임시 폴더에 이동하는 파일이 있으면 지연된 이름을 지연시키기 전에 삭제됩니까?

도움이 되었습니까?

해결책

당신은 전화해야합니다 CreateFile 먼저 파일이 사용 중인지 확인하십시오.

파일이 사용 중인지 확인하려면 :

유효한 파일 핸들이있는 경우 파일에 이미이 파일이 열려있는 프로세스와 공유 권한이 충돌하지 않는다는 것을 알 수 있습니다.

공유 액세스를 지정하지 않으면 (CreateFile Call의 DWSHAREMODE 매개 변수에 0 0) 다른 프로세스가 현재 어떤 방식 으로든 해당 파일을 사용하는 경우 파일 핸들을 얻지 못합니다. 이 경우 getLasterror는 다음과 같습니다. ERROR_SHARING_VIOLATION (32)


파일에 액세스하는 데 보안 문제가 있는지 확인하십시오.

해당 파일에 액세스하는 권한 문제가 있는지 확인하려면 CreateFile 호출도 실패하지만 다른 getLasterror가 있습니다. 당신은 얻을 것입니다 : ERROR_ACCESS_DENIED (5)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top