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