在Spotlight模块/ MDimporter中创建临时文件

时间:2018-06-20 03:56:30

标签: objective-c xcode macos sandbox spotlight

在使用XCode开发Spotlight插件时,有一个关于创建临时文件的older thread here

简而言之,在GetMetadataForFile调用中,由于Spotlight沙箱,尝试创建临时文件/文件夹失败。

{
    NSString* tempDir = NSTemporaryDirectory();
    NSString* tempDirFolder = [tempDir stringByAppendingPathComponent:@"FinaleTempFiles"];

    NSError* theError = nil;

    BOOL fileOK = [[NSFileManager defaultManager] createDirectoryAtPath:tempDirFolder withIntermediateDirectories:NO attributes:nil error:&theError ];
    if ( !fileOK )
        NSLog(@"createDirectoryAtPath %@", [theError localizedDescription]);
}

NSLog输出显示此沙箱违规:

2013-05-31 18:52:46.830 mdimport[43160:707] createDirectoryAtPath You don’t have permission to save the file “FinaleTempFiles” in the folder “T”.

几年前,我提交了一张DTS票证,从本质上讲,苹果公司承认他们不确定他们能做什么。如果有人对如何执行此操作有创意,那将非常有帮助。

如果您对我为什么要这样做感到好奇,可以考虑(例如)运行诸如unzip之类的shell命令以提取单个文件,然后使用另一个shell命令对其进行解析。

0 个答案:

没有答案