我需要能够通过代码执行一个文件,这个操作很好实现,但是为了确保成功,我必须先设置文件的可执行权限位。目前,我通过NSTask运行chmod +x
命令来实现,但这种方法有些笨拙:
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读写逻辑,但想知道是否有更优雅的方法。
+[NSString stringWithString:]
。 - Jonathan Sterling