2

我在 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 + "'");
};

运行此程序时出现错误,尽管它确实创建了文件夹。这是错误:

错误:对象引发的异常:-[NSNull objectForKey:]:无法识别的选择器发送到实例 0x7fff7b69b780 (-2700)

从实际创建文件夹的事实和错误消息的文本来看,我假设问题出在“attributes”参数上,该参数为空(nil)。我认为它会创建文件夹,然后分配属性,这就是它失败的时候。

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

感谢任何帮助。

4

1 回答 1

2

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

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

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

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

玩得开心!迈克尔/汉堡

于 2016-07-13T15:37:30.217 回答