我在 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/