Мне нужно иметь возможность выполнить файл с помощью кода, который прекрасно работает, но чтобы убедиться в его успешности, я сначала должен установить исполняемый бит в файле.В настоящее время я запускаю chmod +x
через NSTask, но это кажется неуклюжим:
NSString *script = @"/path/to/script.sh";
// At this point, we have already checked if script exists and has a shebang
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager isExecutableFileAtPath:script]) {
NSArray *chmodArguments = [NSArray arrayWithObjects:@"+x", script, nil];
NSTask *chmod = [NSTask launchedTaskWithLaunchPath:@"/bin/chmod" arguments:chmodArguments];
[chmod waitUntilExit];
}
Есть предложения?Мне не повезло найти примеры кода, и, похоже, единственным другим вариантом является NSFileManager setAttributes:ofItemAtPath:error:
с атрибутом NSFilePosixPermissions
.Я сделаю POSIX-логику чтения и записи, если мне нужно, но я хотел посмотреть, есть ли более элегантный метод там.