【问题标题】:Objective-C, NSFileManager and Authorization?Objective-C、NSFileManager 和授权?
【发布时间】:2012-06-17 00:07:51
【问题描述】:

我有一个应用程序需要将 Library/Application Support 目录和 writeToFile:atomically 中的文件复制、删除、修改等文件复制到这些文件中。这样做的问题是我必须获得此类事件的授权,而且似乎没有任何直接的方法可以实现这一目标。我读过很多questionsanswers,并尝试过code samples;不幸的是,它们似乎都使用特权帮助工具来处理,往往与使用 NSTask 的命令行功能更相关,或者它们只是没有工作。这是我想做的一个简单示例:

NSFileManager *fileManager = [[NSFileManager alloc] init];

if ([fileManager fileExistsAtPath:sourceFile]) {

  NSError *error = nil;
  if (![fileManager copyItemAtPath:sourceFile
                            toPath:destFile
                             error:&error]) {
    // Deal with error
  }
}

[fileManager release];

这是我想做的非常简单的事情,那么为什么仅访问某些目录中的数据看起来如此困难?如果有人可以提供一个示例或适用的方法来做到这一点,我们将不胜感激——谢谢。

【问题讨论】:

    标签: objective-c authorization nsfilemanager


    【解决方案1】:

    Unix 安全模型的一部分是,进程无法获得比创建时更多的权限。因此,授权特权操作需要启动一个具有特权的新进程,而不是简单地获得当前进程的特权。


    更新:Apple 推荐的技术使用 SMJobBless(),并通过以下示例代码进行演示:https://developer.apple.com/library/mac/#samplecode/SMJobBless/Introduction/Intro.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 2012-01-18
      • 2016-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多