0

次のコードを使用して、Cocoaを使用してファイルにアクセス許可を設定したいと思います。

permissions=0644;
attr = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt: permissions] forKey:NSFilePosixPermissions];
[fileManager setAttributes:attr ofItemAtPath:filename error:nil];

これは正常に機能します。ただし、「permissions」変数は計算した整数であるため、0644ではなく644であり、この場合は失敗します。644の整数を0644に変換するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

2

なぜそのように計算するのですか?0644は8進数です。これは、10進数の420(基数10)に相当します。0644、別名420を意味するときに644を計算した場合、計算は正しくありません。

パーミッションマスクを計算する場合は、やなどで定義されたマスクを使用するのが最適<sys/stat.h>です。S_IRUSRS_IXOTH

于 2012-04-19T00:06:23.297 に答える