在使用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命令对其进行解析。