Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何以编程方式在文件和/或目录中添加注释?_Objective C_Macos_Cocoa_Finder - Fatal编程技术网

Objective c 如何以编程方式在文件和/或目录中添加注释?

Objective c 如何以编程方式在文件和/或目录中添加注释?,objective-c,macos,cocoa,finder,Objective C,Macos,Cocoa,Finder,我试图以编程方式在文件和目录中添加注释 有可能吗?如果是,请帮助我实现这一目标 我从Cocoa框架中寻找了一个直接API,但没有成功,我很乐意通过任何方式(Cocoa、shell或任何脚本)来实现这一点。既然没有公共API,如果你搜索Spotlight评论,你会看到各种各样的解决方案,它们都是基于AppleEvents、Applescript或xattr的。。像 我通过包装在Objective-C中的Apple脚本实现了这一点: NSString *comment = @"hi boys"

我试图以编程方式在文件和目录中添加注释

有可能吗?如果是,请帮助我实现这一目标


我从Cocoa框架中寻找了一个直接API,但没有成功,我很乐意通过任何方式(Cocoa、shell或任何脚本)来实现这一点。

既然没有公共API,如果你搜索Spotlight评论,你会看到各种各样的解决方案,它们都是基于AppleEvents、Applescript或xattr的。。像


我通过包装在Objective-C中的Apple脚本实现了这一点:

 NSString *comment = @"hi boys";

NSOpenPanel *op = [NSOpenPanel new];
NSInteger answer = [op runModal];
if (answer == NSOKButton) {
    NSURL *url = [op URL];

    NSMutableString *appleScriptString = [NSMutableString new];
    [appleScriptString appendString:@"TELL APPLICATION \"FINDER\"\n"];

    NSString *setPath = [NSString stringWithFormat:@"SET filePath TO \"%@\" AS POSIX FILE \n", [url absoluteString]];
    [appleScriptString appendString:setPath];

    NSString *setComment = [NSString stringWithFormat:@"SET COMMENT OF (filePath AS ALIAS) TO \"%@\" \n", comment];
    [appleScriptString appendString:setComment];

    [appleScriptString appendString:@"END TELL"];

    NSAppleScript *commentorScript = [[NSAppleScript alloc] initWithSource:appleScriptString];
    NSDictionary *dictErr;
    [commentorScript executeAndReturnError:&dictErr];
    NSLog(@"Dict error = %@", dictErr);
}

看来你不能用AppleScript来做,因为Finder的注释项是只读的。@ElTomato:我也只是用AppleScript做的。在下面检查我的答案