좋아,이 작업을 시작하는 것은 엄격히 Windows 용이며 .NET을 통해 C++을 사용하는 것을 선호하지만 boost::filesystem
에 반대하지는 않습니다. 그렇지만 스트레이트 Windows API를 피할 수 있다면 선호 할 수 있습니다.추가 처리를 위해 파일 복사가 완료된 시점을 확인하는 방법은 무엇입니까?
이제 시나리오를 변경할 수없는 다른 컴퓨터의 응용 프로그램은 백업을 만들고 추가 처리를해야하는 컴퓨터의 특정 디렉터리에 파일을 만들 것입니다. 현재 나는 약간의 응용 프로그램을 만들었습니다.이 응용 프로그램은 FindFirstChangeNotification
과 FindNextChangeNotification
windows API를 사용하여 대상 디렉토리에서 변경 알림을 수신 대기합니다.
문제는 디렉토리에 새 파일이 만들어 졌을 때 알림을받을 수는 있지만 변경된 파일은 한 번만 알리고 특정 파일을 알려주지 않는다는 것입니다. 나는 ReadDirectoryChangesW
을 보았지만 약간 더 구체적인 정보를 얻을 수 있다는 것을 제외하고는 같은 이야기입니다.
이제 디렉터리를 검사하고 잠금을 얻거나 파일을 열어 마지막 알림에서 변경된 내용과 추가 사용을 위해 사용할 수 있는지 여부를 확인할 수 있지만 큰 파일을 복사하는 경우이를 발견했습니다 파일이 조작 될 준비가되지 않아 처음에는 다른 알림을 얻지 못하므로 실제로 복사가 완료된 시점을 알 수있는 방법이 없습니다. 첫 번째 알림 이후에 계속 획득하려고 시도하지 않는 한 성공할 때까지 잠급니다.
내가 덜 생각할 수있는 유일한 다른 점은 일종의 토큰 파일 일 것입니다.하지만 처음부터 파일을 만드는 응용 프로그램에 대한 제어권이 없기 때문에 저는 ' 나는 그 일을 어떻게 할 것인지를 안다. 여전히 이상하지 않다.
제안 사항?
백업 프로그램은 어떻습니까? –