2013-05-06 2 views
0

파일에 대한 핸들이 있으며 열립니다.이미 열린 파일을 복사하는 방법은 무엇입니까?

이 파일을 복사하고 싶습니다. 그렇게하는 방법? 나는 같은 것을 할 싶습니다 :

CopyFile(h, "new_file.dat"); 

나는 CopyFile(fileName, newFileName) 기능이 알고 있지만, 나는이 함수를 호출이 사용하기 전에 내 핸들을 닫아야 할 것으로 보인다. 사본을 작성하는 또 다른 방법이 있습니까?

+1

원본 파일이 완전히 플러시되었는지 확인하는 것으로 충분할 수 있습니다. 그리고'CreateFile' 호출에서 사용했던 파일 이름을 사용하십시오. –

+2

우리와 공유하지 않은 모든 종류의 공유로 CreateFile 호출이 열리지 않는 경우에만 문제가 발생합니다. http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx –

+0

을 참조하십시오. 나는 공유 기능을 사용할 수 없으며 FILE_SHARE_READ를 넣을 때 효과적입니다. 감사. – fen

답변

2

Windows에서 작업하는 것 같습니다. 문제는 창에서 파일을 열 때 기본적으로 다른 여는 동안 차단됩니다 (복사도 파일을 엽니 다). CreateFile에는 공유 모드에서 파일을 열 수있는 플래그가 있습니다. 정의에 의해 그 깃발은 당신의 문제를 해결해야합니다.

관련 문제