确定文件或目录

时间:2016-07-28 17:36:32

标签: javascript node.js

如何检查路径是目录还是文件?

 var fs = require('fs')
 var directory = '/path/to/directory'
 var dirContents = fs.readdirSync(directory)
 // [".DS_Store", "file01.file", "file02.file", "foo", "bar"]

我了解节点的fs fs.Stats stat.isFilestat.isDirectory,但我如何在循环函数中使用它们来确定文件是什么,什么是目录?

1 个答案:

答案 0 :(得分:0)

如果你想进行同步,那么它真的很容易(虽然可能不是一个好主意)。

let contents = fs.readdirSync(dir);
let stats = contents.map((dirEntry) => {
    return fs.statSync(path.join(dir, dirEntry));
});
stats.forEach((s) => {
    // isFile is just a function available on the returned stat object
    console.log(s.isFile());
});

对于异步,它只是略有不同。您将要使用async npm库来处理这样的事情。

let async = require('async');

fs.readdir(dir, (err, contents) => {
    async.map(contents, (dirEntry, callback) => {
        fs.sync(path.join(dir, dirEntry), callback);
    }, (stats) => {
        // do something with stats array here
    });
});