列出iCloud中可用的文件

时间:2011-10-27 09:34:27

标签: xcode macos cocoa icloud

有没有办法列出我在iCloud中的所有文件(文件+数据)(来自Mac)? 我相信NSMetadataQuery对象可以帮助我,但是有没有示例代码?

谢谢!

1 个答案:

答案 0 :(得分:6)

这里有一些示例代码,用于查询iCloud文件夹中的txt文件。如果要查找其他文件,请简单替换谓词(NSPredicate *pred = [NSPredicate predicateWithFormat:@"%K ENDSWITH '.txt'", NSMetadataItemFSNameKey];)。

要列出所有文件,您只需执行@"NOT %K.pathExtension = '.'",但我不确定这是否是最优雅的方法。建议欢迎。

查看this post以获取上下文和完整代码示例。这是查找文件的方法。

-(void)loadDocument {

    // (2) iCloud query: Looks if there are txt files in the cloud

    NSMetadataQuery *query = [[NSMetadataQuery alloc] init];
    _query = query;
    //SCOPE
    [query setSearchScopes:[NSArray arrayWithObject:NSMetadataQueryUbiquitousDocumentsScope]];
    //PREDICATE
    NSPredicate *pred = [NSPredicate predicateWithFormat:@"%K ENDSWITH '.txt'", NSMetadataItemFSNameKey];
    [query setPredicate:pred];
    //FINISHED?
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(queryDidFinishGathering:) name:NSMetadataQueryDidFinishGatheringNotification object:query];
    [query startQuery];

}