2017-02-26 15 views
0

私はプレビューアプリケーションでプログラムを使用してイメージを開きます。データはアプリケーションサポートフォルダにあります。アプリケーションサポートフォルダのアプリケーションをプレビューする書き込み権限を与えます

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

アプリをプレビューするための書き込み権限を与える方法はありますか。 (例えば回転画像)。

答えて

0

はい。これは、次のとおりです。

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

Docs

POSIX標準と同様に、アプリがいずれかのファイルまたはディレクトリを所有している必要がありまたは属性の変更を有効にするには、スーパーユーザーとして実行している必要があります。このメソッドは、属性に指定されたすべての変更を試み、試行された変更の拒否を無視します。パスの最後のコンポーネントがシンボリックリンクであれば、それは横断されます。

あなたのアプリケーションがファイルを所有していない場合、権限を昇格する必要があります。ファイル権限はROOTとしてのみ変更できます。そしてドキュメントはこのことについて明確である:

Quote from Apple Doc

注:エレベーターの権限は、Mac App Storeで(とiOSには可能ではない)に提出したアプリケーションでは使用できません。

[...]あなたが昇格した権限 で実行することは意味しているという事実を知っていなければならない 、昇格した権限が必要なタスクを実行する必要がある場合は、プログラム内の任意のセキュリティ上の脆弱性が存在する場合、 攻撃者はその昇格された特権も得ることができ、上記の操作のいずれかを実行できるのは になります。