为写入应用程序支持文件夹的app提供写入权限

时间:2017-02-26 15:11:47

标签: macos cocoa permissions preview xamarin.mac

我以编程方式使用预览应用程序打开图像,数据位于应用程序支持文件夹中。

NSWorkspace.SharedWorkspace.OpenFile (item.ImageUID, "Preview.app");

有没有办法给予预览应用的写入权限。 (例如旋转图像);

1 个答案:

答案 0 :(得分:0)

是。它是:

[[NSFileManager defaultManager] setAttributes:@{ NSFilePosixPermissions : @0666 } ofItemAtPath:(* insert filepath here) error:&error];

Docs

  

与POSIX标准一样,应用程序必须拥有文件或目录,或者必须以超级用户身份运行才能使属性更改生效。该方法尝试进行属性中指定的所有更改,并忽略对尝试修改的任何拒绝。如果路径的最后一个组件是符号链接,则遍历该路径。

如果您的应用不拥有该文件,则必须提升权限。您只能将文件权限更改为ROOT。文档对此很清楚:

Quote from Apple Doc

  

注意:提交到Mac App Store的应用程序不允许提升权限(在iOS中无法实现)。

     

[...]如果您必须执行需要提升权限的任务,   你必须意识到以提升的权限运行这一事实   表示如果您的程序中存在任何安全漏洞,   攻击者也可以获得提升的权限,然后就可以了   能够执行上面列出的任何操作。