내 응용 프로그램은 일부 파일을 휴지통에 저장하지만 실행 취소를 구현하여 파일을 다시 꺼냅니다. 내가 실행 취소 스택을 비울 수 있도록 사용자가 휴지통을 비울 지 여부를 알아야합니다.사용자가 휴지통을 비우면 내 코코아 앱에 어떻게 알릴 수 있습니까?
이를 위해 파일 시스템 이벤트를 모니터링해야합니까? 아니면 더 쉬운 방법이 있습니까?
내 응용 프로그램은 일부 파일을 휴지통에 저장하지만 실행 취소를 구현하여 파일을 다시 꺼냅니다. 내가 실행 취소 스택을 비울 수 있도록 사용자가 휴지통을 비울 지 여부를 알아야합니다.사용자가 휴지통을 비우면 내 코코아 앱에 어떻게 알릴 수 있습니까?
이를 위해 파일 시스템 이벤트를 모니터링해야합니까? 아니면 더 쉬운 방법이 있습니까?
아마도 ~/.Trash를보아야 할 것입니다 만, 은입니다. 휴지통을 비우면 알림이 게시됩니다. 그 이름은 "com.apple.carbon.core.DirectoryNotification"
(다른 시간에도 게시 됨)이지만 userInfo에는 아무 것도없는 것 같습니다. 그러나 객체에 문자열이 있으므로 일부 관련 정보가 포함될 수 있습니다. 내 간단한 테스트는 그렇지 않다는 것을 나타내는 것 같습니다. (문자열은 "FNObject 555279-101"
과 같습니다.)
또 다른 옵션은 FNSubscribe
또는 FNSubscribeByPath
입니다. 알림은 발생한 일을 정확히 알려주지 않으며, 가입 한 디렉토리에 문제가 발생했음을 알려줍니다.
당신은 파일 변경 (빈 때리기) 알림을 볼 UKKQueue를 사용할 수 있습니다
http://www.cocoadev.com/index.pl?UKKQueue
감사합니다. 나는 이것을 https://github.com/erica/GrabUpper/blob/master/grabupper.m에서 사용하는 예를 발견했다. 변경이 가능하다는 것을 알게되면 휴지통을 확인하고 적절히 대응할 수 있습니다. –
쓰레기는'~/.Trash'뿐만 아니라, 외장 드라이브의 파일은'/ path/to/mountpoint/Trashes/uid /'로 이동합니다. – Yuji