读取以DOT“。”开头的文件名。

时间:2014-03-25 09:51:39

标签: javascript node.js

我有这个简单的nodeJS脚本用于从PATH读取文件并检查它们是否是目录:

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

问题是当我检查文件是否为DIRECTORY .isDirectory()时,文件以 DOT ”<< / p>

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)

如果我不检查DIRECTORY或文件名是否以DOT开头“。”它工作得很好。 操作系统:Windows 7

1 个答案:

答案 0 :(得分:0)

您使用错误的路径呼叫.lstatSync

请尝试使用path.join来创建正确的路径。

该代码段应该看起来像

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);         
    }
});