我是Objective-C的新手。
如何以编程方式将整个.app
包([[NSBundle mainBundle] bundleURL]
)复制到我的桌面?
这是我的代码,但没有帮助我。
NSString *sourcepath = [[NSBundle mainBundle] bundlePath];
NSString *destpath = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop"];
[[NSFileManager defaultManager] copyItemAtPath:sourcepath toPath:destpath error:nil];
答案 0 :(得分:1)
您可以使用标准NSFileManager
方法
复制目录和文件。来自Apple的文档:
复制项目时,当前进程必须具有读取srcPath上的文件或目录的权限,并写入dstPath的父目录。如果srcPath上的项目是目录,则此方法将复制目录及其所有内容,包括任何隐藏文件。
请注意,如果目标中的项目(文件/目录)已经存在,则必须手动删除目标(文件/目录),否则副本将失败(同样,根据Apple的文档)。
答案 1 :(得分:0)
以下是我解决的问题,这可能会对某人有所帮助。
- (IBAction)createShortcut:(id)sender {
NSString *sourcepath = [[NSBundle mainBundle] bundlePath];
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES);
NSString *theDesktopPath = [paths objectAtIndex:0];
NSString *saveFilePath = [theDesktopPath stringByAppendingPathComponent:@"myApp.app"];
[[NSFileManager defaultManager] copyItemAtPath:sourcepath toPath:saveFilePath error:nil];
}