2010-04-29 2 views
1

파일을 카탈로그 화하고 별도의 "사이드 카"파일을 통해 추가 메타 데이터로 특성을 지정하는 응용 프로그램을 작성하고 있습니다. 내 프로그램을 통해 파일을 변경하면 해당 파일과 해당 메타 데이터 파일간에 모든 것을 동기화 할 수 있습니다. 그러나, 내 프로그램이 실행되지 않는 동안 수동으로 파일을 수정하는 사람을 다루는 방법을 알아 내려고하고있다.파일이 수정되고 이동되었음을 확인하는 방법이 있습니까?

내 프로그램이 시작되면 파일 시스템을 검색하여 찾은 파일을 이전 파일과 비교하여 어떤 파일이 있는지 기억합니다. 파일을 삭제하거나 추가 한 후 업데이트하는 것은 상당히 간단합니다. 그러나 파일을 옮기거나 이름을 변경하면 내 프로그램에서 이전 파일이 삭제되고 새 파일이 추가되는 것으로 간주합니다. 그러나 파일과 메타 데이터 간의 연관성을 잃고 싶지는 않습니다.

각 파일의 해시를 저장할 수 있으므로 새로 찾은 파일이 이전에 이동되었거나 이름이 변경된 파일인지 여부를 확인할 수 있다고 생각했습니다. 그러나 파일을 이동/이름 변경하고 수정하면 해시도 일치하지 않습니다.

그래서 이름을 바꾸거나 이동하거나 수정 한 후에도 추적 할 수있는 다른 고유 한 식별자가 있습니까?

답변

1

파일의 고유 식별자가 없습니다. 당신이 사용할 수있는 가장 좋은 방법은 발견 적 방법과 차이점 비교 방법입니다. 제거 된 파일과 추가 된 파일 사이의 차이가 작 으면이 파일은 수정 + 이동 작업 일 것입니다. 아니면 아닐 수도 있습니다.

git은 이름 바꾸기/이동 감지기가 매우 좋습니다. 아마 당신은 그것에서 약간 아이디어를 빌릴 수있다.

+0

정말 중요하지 않습니다. 나는 이름 바꾸기/이동을 추가/삭제로 간주하고 메타 데이터를 풀고 싶지 않으면 내 도구를 사용하여 파일을 조작해야한다고 사용자에게 알립니다. –

관련 문제