2013-03-26 27 views

答えて

371

fs.lstatSync(path_string).isDirectory()を教えてください。 docs

fs.stat()およびfs.lstat()から返されるオブジェクトはこのタイプです。ここで

stats.isFile() 
stats.isDirectory() 
stats.isBlockDevice() 
stats.isCharacterDevice() 
stats.isSymbolicLink() (only valid with fs.lstat()) 
stats.isFIFO() 
stats.isSocket() 
+13

あなたは、一般的なアプリケーションのパフォーマンスを心配している場合の非同期バージョンが通常好適であることに注意してください。 – AlexMA

+32

ディレクトリまたはファイルが存在しない場合、エラーが返されることに注意してください。 –

17

は、パスがファイルまたはノードで推奨されるアプローチである非同期ディレクトリ、ある場合は、検出するであろう方法です。同期APIを使用している場合fs.lstat

const fs = require("fs"); 

let path = "/path/to/something"; 

fs.lstat(path, (err, stats) => { 

    if(err) 
     return console.log(err); //Handle error 

    console.log(`Is file: ${stats.isFile()}`); 
    console.log(`Is directory: ${stats.isDirectory()}`); 
    console.log(`Is symbolic link: ${stats.isSymbolicLink()}`); 
    console.log(`Is FIFO: ${stats.isFIFO()}`); 
    console.log(`Is socket: ${stats.isSocket()}`); 
    console.log(`Is character device: ${stats.isCharacterDevice()}`); 
    console.log(`Is block device: ${stats.isBlockDevice()}`); 
}); 

注意を使用して :

任意の例外がスローされている同期のフォームを使用。 try/catchを使用して例外を処理したり、例外を処理したりすることができます。

try{ 
    fs.lstatSync("/some/path").isDirectory() 
}catch(e){ 
    // Handle error 
    if(e.code == 'ENOENT'){ 
    //no such file or directory 
    //do something 
    }else { 
    //do something else 
    } 
} 
関連する問題