2016-03-01 16 views
7

node.jsでオンデマンドで一時的な「スクラッチ」ディレクトリを作成する必要があります。要件は次のとおりです。dirnameがランダム化されるべき衝突なしでノードにtmpディレクトリを作成する方法

  • (すなわち/tmp/aDIge4G/
  • ディレクトリがすでに他のランダムな名前のディレクトリを有することができる/tmp内に作成されます
  • ディレクトリがすでに存在する場合、私はむしろスローする必要があります。他の人の仕事を上書きして使用するより
  • これは並行環境では安全である必要があります。ディレクトリが存在するかどうかを確認して、それ以外の人がの後に同名の私はチェックしました。

つまり、私はthis質問の回答が必要ですが、ディレクトリではなくファイルです。

This答えは私がmkdir -pすることによって達成することができるやりたいが、何ノードが存在するかどうかを確認するためにfs.mkdir

答えて

6

package "tmp"を試すことができます。これには設定パラメータ "template"があり、これはLinuxのmkstemp関数を使用し、おそらくすべての要件を解決します。

+0

ありがとうございます!私は夢を見ることができた。 – BonsaiOak

0

使用fs.Statsため-p旗を持っていないと言っていますか?

これは何か?

fs.stat(path, function(err, stats) { 

    if (!stats.isDirectory()) { 
     // create directory here 
    } 
} 
+1

'if(!stats.isDirectory())'を実行している間に他の人がディレクトリを作成した場合はどうですか? – BonsaiOak

関連する問題