如何检查路径是目录还是文件?
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.isFile
和stat.isDirectory
,但我如何在循环函数中使用它们来确定文件是什么,什么是目录?
答案 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
});
});