2014-03-25 6 views
0

나는 경로에서 파일을 읽기 위해이 간단한 nodeJS 스크립트를 가지고 있고이 디렉토리 또는없는 경우 확인 : 나는 파일 .isDirectory (DIRECTORY 있는지 확인하면DOT로 시작하는 파일 이름 읽기 "."

var fs = require("fs"); 
var allFiles = fs.readdirSync(__dirname + '/bb'); 
allFiles.forEach(function(name){ 
if(fs.lstatSync(name).isDirectory()) 
    { 
     console.log(name);   
    } 
}); 

문제는)하고 파일을 DOT 시작 "."

fs.js:679 
return binding.lstat(pathModule._makeLong(path)); 
      ^
Error: ENOENT, no such file or directory 'D:\test\.ggg' 
at Object.fs.lstatSync (fs.js:679:18) 
at D:\test\server.js:4:11 
at Array.forEach (native) 
at Object.<anonymous> (D:\test\server.js:3:10) 
at Module._compile (module.js:456:26) 
at Object.Module._extensions..js (module.js:474:10) 
at Module.load (module.js:356:32) 
at Function.Module._load (module.js:312:12) 
at Function.Module.runMain (module.js:497:10) 
at startup (node.js:119:16) 

을 디렉토리 나 파일 이름이 점으로 시작하지 않으면 내가 선택하지 않으면 "." 그것은 잘 작동합니다. OS : Windows 7

+0

같이해야합니까? – Gntem

+0

경로와 함께 작동합니다. DOT가 문제가 아닌 것 같습니다. 문제는 .lstatSync, ty의 잘못된 경로라고 말한 것입니다. – tibbus

답변

0

잘못된 경로로 .lstatSync을 호출했습니다.

올바른 경로를 만들려면 대신 path.join을 시도하십시오.

코드 조각은``.lstatSync..``에서 path.join ("BB", 이름)을 시도 할 수 있습니다

var fs = require("fs"); 
var allFiles = fs.readdirSync(__dirname + '/bb'); 
allFiles.forEach(function(name){ 

if(fs.lstatSync(path.join("bb",name)/*Correct path*/).isDirectory()) 
    { 
     console.log(name);   
    } 
}); 
관련 문제