如何跟踪 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 上的文件位置? 的相关文章

  • 如何使用 Cocoa Autolayout 根据优先级调整两个子视图的大小?

    我正在 Cocoa 中使用自动布局 有些事情对我来说并不清楚 我在一个窗口上有 2 个视图 每个视图的宽度是父窗口宽度的1 2 View1 View2 如果我调整窗口大小 我希望首先调整 View2 的大小 View1 View2 当 Vi
  • 如何检测Mac上外接显示器的连接和断开?

    您知道如何检测 Cocoa 应用程序中插入 拔出的其他屏幕吗 我想检测用户将另一个屏幕插入或拔出 Mac 的时刻 我怎么能这样做呢 你的答案就在石英里 include
  • 经常访问 NSUserDefaults

    在我的应用程序的逻辑处理过程中 我需要频繁访问用户首选项 并多次访问 10 15 次 以确定需要处理什么以及如何处理 也许这个问题不是关于性能的问题 而是关于正确执行的问题 目前我正在做一个 NSUserDefaults standardU
  • 如何在play框架中从服务器读取文件

    我有以下文件 app menus menu1 yml 我想阅读它的内容 简短回答 fileContent play vfs VirtualFile fromRelativePath app menus menu1 yml contentAs
  • 如何创建具有倾斜效果的 NSAffineTransform?

    我对用 Cocoa 绘图还很陌生 并且正在开发一个涉及六边形网格的实验性应用程序 为了简化这个过程 我想倾斜坐标系 使 Y 轴向左旋转 30 度 我在苹果手机上看到了这个可可绘图指南 https developer apple com li
  • NSPopUpButton、绑定和缩短的寿命

    我试图了解使用 NSPopUpButton 是多么困难 它无疑是 Cocoa 中最难编程的用户元素 至少就我而言是这样 我想到的用例如下 我有一个名为 Port 的类 代表串行端口 属性中有一个名称字段 在 NSPopUpButton 中
  • 在 XCode 数据模型编辑器中获取属性的最小值

    如何在 XCode 的数据模型编辑器中添加获取的属性以获得一个属性的最小值 我的型号 模型http www freeimagehosting net uploads b48853070e png http www freeimagehost
  • 检查 u 键是否被按下 Swift Cocoa [重复]

    这个问题在这里已经有答案了 我正在尝试检测是否U键是否被按下 如果是的话应该print BUT BUT 但我不确定如何检查不同的按键 因为按键的文档非常糟糕 我找到了带有键码的答案 但它们仅适用于 QWERTY 键盘 视图控制器 swift
  • 自动调整 NSTextView 和/或 NSScrollView 的大小

    我有一个NSTextView里面一个NSView 正在被使用NSPopover 不知道这是否相关 我正在尝试以编程方式自动调整大小 参见标题 我一直在努力解决很多问题 即 看着NSLayoutManager and usedRectForT
  • 从一个 NSManagedObjectContext 保存的更改不会反映在主 NSManagedObjectContext 上

    我有一个主NSManagedObjectContext是在appDelegate 现在 我正在使用另一个NSManagedObjectContext用于编辑 添加新对象而不影响主对象NSManagedObjectContext 直到我拯救它
  • NSPersistentStoreCoordinator 线程安全吗?

    我正在开发一个使用 Core Data 的 iPhone 应用程序 该应用程序调用 Web 服务 解析生成的 XML 文件 然后在我的应用程序中创建或修改 Core Data 对象 我已经处理了 Web 服务调用并异步解析 但我一直将解析后
  • 获取实体中某个值的最大值

    我正在尝试获取核心数据中实体中属性的最大值 苹果有一个很好的例子here http developer apple com library mac documentation Cocoa Conceptual CoreData Articl
  • 如何向用户显示我的App当前的项目版本?

    我想将当前版本添加到我的应用程序的 关于 部分 如所附屏幕截图所示 Apple 提供版本控制 如何在您的应用程序中显示这些设置 经过进一步的搜索和测试 我自己找到了解决方案 NSDictionary infoDictionary NSBun
  • NSTextField:当用户单击文本字段之外时结束编辑

    我有一个NSTextField我根据用户操作设置可编辑 我想在用户单击窗口内文本字段之外的任何位置时结束编辑 看起来很简单 但我无法让它发挥作用 我实施了controlTextDidEndEditing and textDidEndEdit
  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • 如何在 NSTextView 中使用 SPACE 而不是 TAB

    我只知道如何修改 NSTextView 中的制表符宽度 NSMutableParagraphStyle paragraphStyle self defaultParagraphStyle mutableCopy paragraphStyle
  • 具有延迟 NSMenu 的 NSButton - Objective-C/Cocoa

    我想创建一个NSButton单击时会发送一个操作 但按下 1 或 2 秒时会显示 NSMenu 和这个问题完全一样here https stackoverflow com questions 3309030 how to create ns
  • 如何获取 CIFilter 类中的过滤器名称列表?

    我正在使用以下代码进行曝光调整及其工作 我需要锐化 降噪 高光 色温 阴影 模糊等滤镜名称 CIFilter filterWithName CIExposureAdjust keysAndValues inputImage imageVie
  • 在完成块中保留循环

    在我的课堂上 我创建了这个方法 void refreshDatasourceWithSuccess CreateDataSourceSuccessBlock successBlock failure CreateDataSourceFail
  • 核心数据:尝试查找实体中属性的最小日期

    我正在尝试查找核心数据中特定属性中最旧的日期 我发现了核心数据编程指南中的示例 http developer apple com mac library documentation cocoa conceptual CoreData Art

随机推荐