将文件复制到系统文件夹/包

时间:2011-03-14 14:57:59

标签: cocoa macos

我正在做一个改变Mac OSX中Trash-icon的应用程序...到目前为止我得到了:

- (IBAction)install:(id)sender {
NSLog(@"Installing..");
NSLog(@"Trying to move file..");

NSString* src = @"/Users/myuser/Desktop/dashboard.png";
NSString* target = @"/System/Library/CoreServices/Dock/Contents/Resources/tester123.png";
NSError* error = nil;

[[NSFileManager defaultManager] copyItemAtPath:src toPath:target error:&error];

if (error) {
    NSLog(@"%@", error);
    NSLog(@"%@", [error userInfo]);
}

}

我收到了错误:

The operation couldn’t be completed. No such file or directory

我相信这是因为Dock不是普通的文件夹,而是一个包?我该如何解决这个问题?或者有更好的方法来更改垃圾桶图标吗?

1 个答案:

答案 0 :(得分:0)

将目标更改为此(Dock变为Dock.app):

NSString* target = @"/System/Library/CoreServices/Dock.app/Contents/Resources/Sample.png";

您需要管理权限,否则会收到此错误:

 "The operation couldn’t be completed. Permission denied"

此命令在终端中工作正常(结论:路径正确)。

sudo cp /Users/Anne/Desktop/Sample.png /System/Library/CoreServices/Dock.app/Contents/Resources/Sample.png