2013-02-09 2 views
2

iTunes와 같은 일부 MacOSX 응용 프로그램은 파일을 이동할 때 실제로 문제가 없습니다. 이동 된 파일을 쉽게 찾을 수 있습니다 (이전에 파일을 열지 않았 음을 확신합니다).OSX : 이동 된 파일 찾기

어떻게 그 일을하고 있습니까? 내가 생각할 수있는 한 가지 가능성은 FS 이벤트 알림 시스템입니다. (related question)

그러나 나는 절대 파일 핸들/ID를 보았고 아마도 그 파일 핸들에 의해 항상 현재 파일 이름을 쿼리 할 수 ​​있다고 생각했다. 그런 것이 있습니까? 어쩌면 inode nr에서 파일 이름을 얻는 방법과 파일을 여는 방법을 모르기 때문에 inode nr하지만 조금 적습니다.

답변

0

앨리어스 언급 한 Alias ​​Manager가 감가 상각 되었기 때문에, 대체는 URL Bookmark 방법

입니다.
0

나는 방금 검색 한 것과 같은 소리 인 Alias Manager에 대해 알았습니다. 불행히도, 그것은 사용되지 않을 것 같습니다. (related question) Some info about the deprecation.

(Another related question) 이러한 기능을 제공하는 NSURL class도 있습니다.

파이썬 코드 :

import AppKit 

def getFileNativeId(filepath): 
    if not os.path.isfile(filepath): return None 
    filepath = os.path.abspath(filepath) 
    filepath = unicode(filepath) 

    url = AppKit.NSURL.alloc().initFileURLWithPath_(filepath) 

    bookmark = url.bookmarkDataWithOptions_includingResourceValuesForKeys_relativeToURL_error_(AppKit.NSURLBookmarkCreationPreferFileIDResolution,None,None,None) 
    bytes = bookmark[0].bytes().tobytes() 

    return bytes 

def getPathByNativeId(fileid): 
    nsdata = AppKit.NSData.alloc().initWithBytes_length_(fileid, len(fileid)) 
    url, _, _ = AppKit.NSURL.URLByResolvingBookmarkData_options_relativeToURL_bookmarkDataIsStale_error_(nsdata, AppKit.NSURLBookmarkResolutionWithoutUI, None,None,None) 

    if not url: return None 

    return unicode(url.path()) 
0

나는 당신이 찾고있는 것은 NSURL의 북마크 생각 - 난 아이 패드로 인해 애플의 근시안적 웹 페이지 디자인하지만 본질에 적절한 링크를 생성 할 수없는 수행에 그 중 하나는 URL에서 북마크를 가져 와서 나중에 북마크를 URL로 다시 확인할 수 있다는 것입니다. 시스템은 중간에 파일의 모든 움직임을 해결합니다.