您正在寻找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;
}
您可以安全地保存返回的书签数据,并且在您的应用重新启动后它将指向同一个文件。
官方文档中的附加信息:Locating Files Using Bookmarks
编辑:根据 Peter Hosey 与上述代码中的错误处理相关的非常有效的建议,请注意:来自 FileWatcher 的上述代码不根据标准处理错误,并附上作为指导。
详细请参考官方文档。