7

BBEditの優れた機能の 1 つは、ファイルに何が起こってもファイルを追跡する方法です。私が取り組んでいるアプリケーションでは、ユーザーが所有する多数のファイルの場所を追跡する必要があります。ユーザーはこれらのファイルを移動または削除できます。また、場所が変更されたときにアプリケーションが実行されていなかったとしても、アプリケーションはそれらのファイルがどこにあるかを知る必要があります。

この問題に対して推奨される戦略は何ですか?

アプリケーションの実行中にファイルを追跡することは問題ではありません。アプリケーションが実行されていないときにファイルに何が起こったとしても、アプリケーションが実行されているときにファイルへの正しいパスが必要です。

ファイルを手動で検索するのが最善の方法ですか、それともこれを簡単にするために見落としている API がありますか?

4

1 に答える 1

12

10.6 以降では、次の「ブックマーク」機能によって実行されますNSURL

ブックマークは、URL によって識別されるリソースへの永続的な参照を生成するための新しい機能です。ブックマークは、リソース URL からシステムによって生成されるデータ オブジェクトです。ブックマーク データは、基になるリソースへの永続的で不透明な参照と、ブックマークの作成時に取得されたリソース プロパティの値をカプセル化します。ブックマークはメモリまたはディスクに保存し、後でそれが含むリソース プロパティ値にアクセスするために使用したり、基になるリソースの URL をカバーするために解決したりできます。ファイル システム リソースの場合、ブックマークは、エイリアス マネージャのエイリアスと同様に、ブックマークの作成後に移動または名前変更されたリソースを見つけることができます。このリリースでは、ブックマークはパスによってのみ解決されることに注意してください。

次の新しい NSURL メソッドは、NSURL.h でさらに文書化されています。

- (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 より前は、エイリアスで行われていました。

于 2012-04-23T07:10:25.273 に答える