10

サンドボックスで特定のファイル システムの場所にアクセスできるかどうかを確認する方法があるかどうかを知っている人はいますか?

通常の Powerbox ルールで特定のファイルにアクセスできるかどうかをテストしたい。これは、開く/保存ダイアログなどを使用して、既にパワー ボックスに追加されています。

サンドボックスの例外をトリガーする前にこれを行うことはできますか?

サンドボックスの例外をキャッチできますか?

よろしくお願いします、

フランク

4

2 に答える 2

11

次の OSaccess()システム コールを使用して、すばやく簡単なテストを実行できman accessます。

#include <unistd.h>

int access(const char *path, int amode);

access() 関数は、amode で示されるアクセス許可について、path で指定されたファイルのアクセス可能性をチェックします。amode の値は、チェックするアクセス許可 (読み取り許可の場合は R_OK、書き込み許可の場合は W_OK、実行/検索許可の場合は X_OK) または存在テスト F_OK のビット単位の論理和です。パス名 path のすべてのコンポーネントは、アクセス権 (F_OK を含む) についてチェックされます。

path が見つからない場合、または必要なアクセス モードのいずれかが許可されない場合は、値 -1 が返され、エラーを示すためにグローバル整数変数 errno が設定されます。それ以外の場合は、値 0 が返されます。

次のようなものを使用して、Objective-C 用にこれをきれいにすることができます。

typedef enum
{
   ReadAccess = R_OK,
   WriteAccess = W_OK,
   ExecuteAccess = X_OK,
   PathExists = F_OK
} AccessKind;


BOOL isPathAccessible(NSString *path, AccessKind mode)
{
   return access([path UTF8String], mode) == 0;
}
于 2012-05-09T10:46:57.830 に答える