2014-07-21 2 views
0

Python 프로그래밍에서 Mac에서 액세스하는 폴더를 감지 할 때 문제가 있습니다. Pyinotify, watchdog, fsevent를 사용하여 파일 변경을 모니터링합니다. 매우 좋았지 만 지금은 폴더에 액세스 할 때이를 감지해야합니다. 누군가가 폴더에서 Finder를 열어서 그 폴더의 변경 사항을 확인할 수 있는지 알고 싶습니다. 예 : 현재 여기에 있습니다 폴더/ 그리고 폴더/folder_children으로 갈 때, 제 python 프로그램에서 알 수 있습니다.Mac에서 로컬 디렉토리 액세스 목록 감지

누구나 감지 방법을 알고 계십니까?

+0

불행히도 사용할 수 없습니다. –

+0

빠른 답장을 보내 주셔서 감사합니다. @BurhanKhalid.filezilla가 로컬 (왼쪽 창)의 폴더로 이동할 때 전송 대기열을 처리하는 토글을보고, 서버의 폴더 (오른쪽 창)로 이동합니다. 그것은 내가 필요로하는 것과 아마 같을 것이다. – tungtt

+0

FileZilla에서는 파일 브라우저를 사용하기 때문에 이러한 파일을 감지 할 수 있습니다. 귀하의 경우, 동일한 작업을 수행하기 위해 'Finder'버전을 직접 작성해야합니다. 'Finder'시스템은이 정보를 제공하지 않습니다. –

답변

1

워치 만을 사용할 수 있습니다. 우리는 (아니 현재 매우 잘 문서화) 파이썬 클라이언트를 제공하고 사용 사례를 들어

https://facebook.github.io/watchman/

리눅스 및 Mac (솔라리스와 FreeBSD)에서 작동 워치의 다음과 같은 측면은 관련 있습니다

  • 워치 당신은 시계 값 이후에 변경된 파일의 목록 워치를 조회 할 수 있습니다
  • 값 파일의 시간 주문 지수는
  • 각각의 논리적 변화가 관련 "시계"가 변경 구축
  • 편의를 위해 Watchman에 기호 이름으로 시계 값을 추적하도록 요청할 수 있습니다. 내가 처음 watchman since /path/to/dir n:myclient를 실행하면

    , 내가 /path/to/dir에서 파일의 전체 목록을 보려면 : 우리는이 이름이 커서 예를 들어

전화. 두 번째 이후에 실행하면 마지막으로 실행 된 이후에 변경된 파일 목록이 반환됩니다.

since보다 정교한 쿼리를 생성하여 특정 파일과 일치시킬 수 있습니다. 관련 문서 :

: 원격 측에

  • , 파수꾼 서비스를 실행하고 파일 시스템 트리의 루트를 모니터링하도록 요청 당신을 다시 동기화됩니다. 워치 만은 재귀 적으로 항상 감시합니다.
  • 클라이언트 측에서는 주기적으로 (또는 언제 적절한 지 알아 내는데 사용하는 경험적 방법을 통해) 서버에 전화를 걸 수 있습니다.
  • 클라이언트가 폴링하면 서버는 워치 만에게 커서를 사용하여 이후 쿼리를 실행합니다 이름
  • 서버가 해당 목록

당신은 동기화하는 여러 클라이언트가있는 경우 개별 클라이언트에 따라 별도의 커서 이름을 사용할 수있는 파일을 다시 검토 할 필요가

  • .

  • +0

    Wez Furlong (@에는 문제가있는 것 같습니다)에게 감사드립니다. Dropbox와 같은 동기화 프로그램이 있습니다. 그래서 정기적으로 서버를 다시 검색해야합니다 (모든 폴더/파일을 루트 폴더로 다시 스캔). 그것은 빨기 천천히, 그래서 우리는 사용자가 로컬 폴더를 열 때 우리는 서버에서 그 폴더에 대한 변경 사항 (루트 폴더에 모두가 아니라)을 검색 할 것입니다 검색하고 싶습니다, 그것은 성능을 향상시킬 것입니다. 그래서 로컬 폴더에 대한 사용자 액세스를 감지하려고합니다. – tungtt

    +0

    Ack. 내 대답 업데이트; 필요한 경우 더 쉽게 확장 할 수있어서 알려주세요! –