swift - 创建 plist 并将其复制到文件夹 MacOS Swift

标签 swift macos plist nsfilemanager

我一直在绞尽脑汁研究如何在 MacOS 中创建和写入一个 plist 到某个文件夹目录。在我的例子中是/Library 中的 LaunchDaemons 文件夹。我知道如何创建 plist,但我在写入 LaunchDaemons 文件夹时遇到了问题。根据我的理解,下面的这段代码是针对沙箱的,但我该如何在沙箱之外进行呢?干杯

 let fileManager = FileManager.default
 let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
 let path = documentDirectory.appending("test.plist")

我在收到的帮助下添加了代码,没有错误,但它没有向文件夹写入任何内容。这是代码:

 let libraryDirectory = try! FileManager.default.url(for: .libraryDirectory, in: .localDomainMask, appropriateFor: nil, create: false)
    let launchDaemonsFolder = libraryDirectory.appendingPathComponent("LaunchDaemons/test.plist")

    if FileManager.default.fileExists(atPath: launchDaemonsFolder.path) {

        print(launchDaemonsFolder)


        let plistDictionary : [String: Any] = [
            "ExitTimeOut": 600,
            "Label": "BOOT.SHUTDOWN.SERVICE",
            "ProgramArguments": ["/test.sh"] as Array,
            "RunAtLoad": false,
            "WorkingDirectory": "/"

        ]

        let dictionaryResult = NSDictionary(dictionary: plistDictionary)
        let fileWritten = dictionaryResult.write(to: launchDaemonsFolder, atomically: true)
        print("is the file created: \(fileWritten)")



    } else {

        print("File Exists")

    }

最佳答案

首先 NSSearchPathForDirectoriesInDomains 已经过时了,强烈建议无论如何都使用 URL 相关的 API。

此代码创建一个指向 /Library/LaunchDaemons 的 URL>

let libraryDirectory = try! FileManager.default.url(for: .libraryDirectory, in: .localDomainMask, appropriateFor: nil, create: false)
let launchDaemonsFolder = libraryDirectory.appendingPathComponent("LaunchDaemons")

关于swift - 创建 plist 并将其复制到文件夹 MacOS Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53577851/

相关文章:

arrays - 快速更新子数组也会更新父数组

ios - 本地通知立即触发,而不是按计划触发

ios - 字符串(格式 :) Crashes in iOS 7 - Need an alternative. 线程 1 : EXC_BAD_ACCESS (code=1, 地址=0x10)

在 Mac OSX 10.11.6 上找不到 clock_gettime

cocoa - 如何将 4 字符 OSType/NSFileHFSTypeCode 与特定 UTI 关联

arrays - Swift 数组加入 EXC_BAD_ACCESS

c - "make"错误,当我想制作 libsvm(系统 : MAC OS X 10. 12.6)

iphone - 在应用程序更新时,自定义 plist 文件将得到更新,或者我们需要做些什么吗?

iphone - 随机化从 plist 文件中提取的字符串

iphone - 从 Plist 设置 UILabel 文本?