如何跟踪 Mac OS X 上的文件位置?

2023-12-30

很好的功能之一BBEdit http://en.wikipedia.org/wiki/BBEdit这就是它跟踪文件的方式,无论这些文件发生什么情况。我正在开发的应用程序需要跟踪用户拥有的许多文件的位置。用户可以移动或删除这些文件,即使位置发生更改时我的应用程序没有运行,我的应用程序也需要知道这些文件的位置。

针对这个问题的推荐策略是什么或者可能是什么?

在应用程序运行时跟踪文件不是问题。当我的应用程序运行时,我想要文件的正确路径,无论我的应用程序未运行时这些文件发生了什么。

手动搜索文件是最好的方法还是有一个我忽略的 API 可以让这变得更容易?


从10.6开始,它是通过“书签”功能来完成的NSURL:

书签是一种新工具,用于生成对 URL 标识的资源的持久引用。书签是系统根据资源 URL 生成的数据对象。书签数据封装了对底层资源的持久的、不透明的引用以及创建书签时捕获的资源属性的值。书签可以存储在内存或磁盘上,稍后用于访问它包含的资源属性值,或解析以覆盖底层资源的 URL。对于文件系统资源,书签能够定位自创建书签以来已移动或重命名的资源,类似于 Alias Manager 别名。请注意,在此版本中,书签仅按路径解析。

NSURL.h 中进一步记录了以下新的 NSURL 方法:

- (NSData *)bookmarkDataWithOptions:(NSURLBookmarkCreationOptions)options includingResourceValuesForKeys:(NSArray *)keys relativeToURL:( NSURL*)relativeURL error:(NSURL **)error;
- (NSURL*)initByResolvingBookmarkData:(NSData*)bookmarkData options:(NSURLBookmarkResolutionOptions)options relativeToURL:(NSURL *)relativeURL bookmarkDataIsStale:(BOOL *)isStale error:(NSError **)error;
+ (NSURL *)URLByResolvingBookmarkData:(NSData *)bookmarkData options:(NSURLBookmarkResolutionOptions)options relativeToURL:(NSURL *)relativeURL bookmarkDataIsStale:(BOOL *)isStale error:(NSError **)error;
+ (NSDictionary *)resourceValuesForKeys:(NSArray *)keys fromBookmarkData:(NSData *)bookmarkData;

在10.6之前,它是用aliases http://developer.apple.com/library/mac/#documentation/Carbon/Reference/Alias_Manager/Reference/reference.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何跟踪 Mac OS X 上的文件位置? 的相关文章

随机推荐