javascript - JXA NSFileManager createDirectoryAtPathWithIntermediateDirectoriesAttributesError 异常

标签 javascript macos javascript-automation

我在 OS/X 10.11.5 上使用以下 JXA(自动化 JavaScript)代码:

function createFolder(path, createIntermediateDirectories) {
    var error = {}
    $.NSFileManager.defaultManager
        .createDirectoryAtPathWithIntermediateDirectoriesAttributesError(
            $(path).stringByStandardizingPath, 
            createIntermediateDirectories, 
            null, 
            error);
    if (error)
        throw Error("Could not create folder '" + path + "'");
};

运行此命令时出现错误,尽管它实际上确实创建了该文件夹。错误如下:

Error: exception raised by object: -[NSNull objectForKey:]: unrecognized selector sent to instance 0x7fff7b69b780 (-2700)

根据实际创建的文件夹以及错误消息的文本来判断,我假设问题出在“attributes”参数上,该参数为空 (nil)。我认为它会创建文件夹,然后分配属性,然后就失败了。

有人知道如何解决这个问题吗?我从 JXA 调用任何其他 NSFileManager 方法都没有遇到任何问题,包括那些我传递 null 和/或 bool 值的方法,所以这被难住了。

感谢任何帮助。

最佳答案

抱歉, 我现在没有太多时间,所以这里有一个可以正常工作的快速解决方案:

function createFolder(path, createIntermediateDirectories) {
    error = $()

    $.NSFileManager.defaultManager.createDirectoryAtPathWithIntermediateDirectoriesAttributesError(
        $(path).stringByStandardizingPath, 
        createIntermediateDirectories, 
        $(), 
        error)

    if (error) {
        $.NSLog(error.localizedDescription);
    }
};

玩得开心! 迈克尔/汉堡

关于javascript - JXA NSFileManager createDirectoryAtPathWithIntermediateDirectoriesAttributesError 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38330872/

相关文章:

javascript - 使用计时器打开和关闭 Chrome 中的选项卡

Javascript 根据偶数或奇数 ID 更改图像 URL

php - Javascript slider 不滑动,如何判断是否存在JS冲突?

xcode - 不激活全屏模式的 Kiosk 风格 - OS X

javascript - 如何从 cocoa 应用程序运行 JavaScript/AppleScript?

javascript - jQuery 1.10.2 和 ie9 - 仅在打开开发人员工具时有效

swift - NSGridView 困难

macos - Applescript到 "paste"剪贴板

javascript-automation - 在 JXA (AppleScript JS) 中加载脚本库

用于自动化的 javascript [在 finder 中打开位置]