2015-02-04 2 views
1

내 응용 프로그램은 기록 된 비디오 파일을 외부 디렉토리의 특정 폴더에 저장하고 모든 파일의 경로를 포함한 메타 데이터를 데이터베이스에 저장합니다. 새로운 파일 경로로 데이터베이스를 업데이트하는 경우 파일을 제거하고, 이름을 변경하고 이동해야합니다. 나는 android에서 FileObserver을 읽었습니다. 예를 들어 /storage/emulated/0/my_recordings의 SD 카드에있는 내 디렉토리의 경로를 입력 경로로 입력하면의 입력 경로에있는 모든 파일에 대해 이벤트가 발생하고 이름을 확인하는 데 사용하는 이벤트 유형 인 MOVED_TO에 대해 이벤트가 발생합니다. 작업 내 디렉터리 아래에 파일을 onEvent (int event, String path) 경로 인수에서 새 파일을 얻을 수 있지만 어떻게 내가 업데이트해야하는 데이터베이스 항목을 이해하기 위해 해당 파일의 이전 파일 이름 또는 이전 파일 경로를 검색 할 수 있습니까? 이전 파일 이름이 없도록 해당 파일의 상위 디렉토리 경로를 전달했습니다. 사전에관찰 디렉토리 아래에서 이름이 변경된 파일의 새 경로와 이전 경로 검색

덕분에

+1

'MOVE_TO'바로 앞에 'MOVED_FROM' 이벤트가 있어야합니다. MOVED_FROM 이벤트의 경로는 이전 파일 이름이어야하며, MOVED_TO의 경로는 새 파일 이름을 포함해야합니다. 'FileObserver' 생성자의'flags' 매개 변수에 명시 적으로 전달하여이 이벤트 유형을 모니터해야합니다. –

답변

1

바로 MOVE_TO 전에 MOVED_FROM 이벤트가 있어야합니다. MOVED_TO의 경로는 새 파일 이름을 포함해야하지만 MOVED_FROM 이벤트의 경로는 이전 파일 이름이어야합니다.

또한 FileObserver 생성자의 flags 매개 변수에 명시 적으로 전달하여이 이벤트 유형을 모니터링해야합니다.

+0

감사. 그것은 작동합니다. – Armin