2016-07-12 5 views
2

私はOS/X 10.11.5上で次のJXA(JavaScriptのオートメーションのための)コード使用しています。これを実行しているときに私はいるが、エラーが発生します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)

、私は問題がヌル(ゼロ)である「属性」パラメータ、であると仮定しています。私はそれがフォルダーを作成し、次にアトリビュートを割り当てるようになり、それが失敗すると思います。

誰でもこの問題を解決する方法がありますか?私はJXAから他のNSFileManagerメソッドを呼び出す際に問題がありません。nullやブール値を渡すNSFileManagerメソッドも含めて、これは困惑しています。

ありがとうございました。

答えて

2

申し訳ありませんが、私はそうここに、今、多くの時間を持っていない はここに正常に動作し迅速なソリューションです:

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

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

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

は、お楽しみに! マイケル/ハンブルク

+0

これは例外をスローするのを防ぎますが、これは素晴らしいことです!ありがとう。そして、もし真か偽の結果を確認すれば、それは信頼できると思われます。しかし、私は "エラー"と何かをするように見えることはできません。それはいつも「真実」ですが、エラーを報告するために使用できるプロパティはないようです(テストケースでは「既に存在します」など)。だから問題は解決されています(ありがとう)、今はちょっとしたパズルがあります。 –

+0

私は、createDirectoryAtPathWithIntermediateDirectoriesAttributesErrorは、指定されたディレクトリが呼び出しの後に利用可能な場合、常にtrueを返すと思います。私がエラーをスローすることが分かったのは、作成したいディレクトリと同じ名前のテキストファイルを作成することだけでした。 – ShooTerKo

+0

ありがとう!それは有り難いです。 –