2013-03-26 3 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 
    } 
} 
관련 문제