2016-07-12 1 views
2
나는 다음과 같은 JXA (자동화를위한 자바 스크립트)를 사용하고

코드 :이 작업을 실행할 때JXA NSFileManager를 createDirectoryAtPathWithIntermediateDirectoriesAttributesError 예외

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)

, 오류 메시지의 텍스트, 내가 문제를 가정하고있어 (전무) 널 (null) 인 "속성"매개 변수, 함께 . 나는 그것이 폴더를 생성하고, 속성을 할당하고, 그것이 실패 할 때를 생각합니다.

누구나 해결 방법은 무엇입니까? JXA에서 다른 NSFileManager 메소드를 호출하는 데 문제가 없었습니다. null 및/또는 부울 값을 전달하는 NSFileManager 메소드를 포함하여이 문제가 발생했습니다.

감사합니다.

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

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

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

재밌게 : 죄송합니다

답변

2

, 지금 시간이별로 없어, 그래서 여기에 잘 여기서 일하는 빠른 솔루션입니다! Michael/Hamburg

+0

이렇게하면 예외가 발생하지 않습니다. 감사. 그리고 그 결과가 참인지 거짓인지를 확인한다면 그것은 신뢰할만한 것 같습니다. 그러나, 나는 "오류"와 함께 아무것도 할 수없는 것 같습니다. 그것은 항상 "사실"이지만 오류를보고하는 데 사용할 수있는 속성이없는 것 같습니다 (테스트 케이스에서는 "이미 있음"또는 이와 비슷한 것). 그래서 문제가 해결되었습니다. (대단히 감사합니다.) 이제 저는 약간의 퍼즐을 가지고 있습니다. –

+0

createDirectoryAtPathWithIntermediateDirectoriesAttributesError는 호출 후 지정된 디렉토리를 사용할 수있는 경우 항상 true를 리턴한다고 생각합니다. 오류를 발생시키는 유일한 방법은 만들려는 디렉토리와 똑같은 이름의 텍스트 파일을 만드는 것입니다. – ShooTerKo

+0

감사! 감사합니다. –

관련 문제