NSURL
ベースのソリューションを探しています。ファイルを移動/名前変更した後でもファイルを参照するブックマークを作成できます。
Peter Sugihara による GitHub の FileWatcherからの借用:
- (NSData *)bookmarkFromURL:(NSURL *)url {
NSData *bookmark = [url bookmarkDataWithOptions:NSURLBookmarkCreationPreferFileIDResolution
includingResourceValuesForKeys:NULL
relativeToURL:NULL
error:NULL];
return bookmark;
}
- (NSURL *)urlFromBookmark:(NSData *)bookmark {
NSError *error = noErr;
NSURL *url = [NSURL URLByResolvingBookmarkData:bookmark
options:NSURLBookmarkResolutionWithoutUI
relativeToURL:NULL
bookmarkDataIsStale:NULL
error:&error];
if (error != noErr)
NSLog(@"%@", [error description]);
return url;
}
返されたブックマーク データは安全に保持でき、アプリが再起動された後も同じファイルを指します。
公式ドキュメントの追加情報:ブックマークを使用したファイルの検索
編集:上記のコードのエラー処理に関連する Peter Hosey による非常に有効な提案に従って、注: FileWatcher の上記のコードは標準に従ってエラーを処理せず、ガイドラインとして役立つように添付されています。
詳細については、公式ドキュメントを参照してください。