Node.js でディレクトリかどうかを判定する方法

phi phi on Node.js

fs.statSync で判定

fs モジュールの statSync で fs.Stats を取得してディレクトリかどうかを判定.

var fs = require('fs');  
var filepath = 'hoge';

if (fs.statSync(filepath).isDirectory()) {  
  console.log(filepath + ' is directory.'); // hoge is directory.
}

より安全に判定

上の判定方法だとその ファイル or ディレクトリ 自体が存在しなかった場合 エラーになってしまいます.

存在チェックもするとより安全かも

var fs = require('fs');  
var filepath = 'hoge';

if (fs.existsSync(filepath) && fs.statSync(filepath).isDirectory()) {  
  console.log(filepath + ' is directory.'); // hoge is directory.
}

関数化してスマートに

よく使う場合は関数化しておくと便利です.

var fs = require('fs');

var isDir = function(filepath) {  
  return fs.existsSync(filepath) && fs.statSync(filepath).isDirectory();
};

var filepath = 'hoge';  
if (isDir(filepath)) {  
  console.log(filepath + ' is directory.'); // hoge is directory.
}