js 获取文件夹下所有文件名
js node.js 解决读取文件夹下所有的文件名
·
方法一:
ActiveXObject:
Automation 服务器至少提供一类对象。例如,字处理应用程序可能提供应用程序对象、文档对象和工具栏对象。
要创建 Automation 对象,将新的 ActiveXObject 赋给对象变量。
GetFolder:
返回一 个 Folder 对象,该对象对应于指定路径中的文件夹。
Enumerator :
Enumerator 对象提供了访问集合的任何成员的方法,其操作与 VBScript 中的 For...Each 语句相似。
for(;!fn.atEnd();fn.moveNext()):
第一个参数省略,第二个参数判断这个条件!fn.atEnd() ,第三个参数执行fn.moveNext()
var fso=new ActiveXObject("Scripting.FileSystemObject");//创建文件系统对象
var s=fso.GetFolder("E:\\");//获取文件夹对象
var fn=new Enumerator(s.files);
var s="";
for(;!fn.atEnd();fn.moveNext()){
s=s+fn.item()+"\n";
}
alert(s);
方法二:
如下例子是在node.js中完成的
var fs = require('fs');
function readDirRecur(folder, callback) {
fs.readdir(folder, function(err, files) {
var count = 0
var checkEnd = function() {
++count == files.length && callback()
}
files.forEach(function(file) {
var fullPath = folder + '/' + file;
fs.stat(fullPath, function(err, stats) {
if (stats.isDirectory()) {
return readDirRecur(fullPath, checkEnd);
} else {
/*not use ignore files*/
if(file[0] == '.') {
} else {
fileList.push(fullPath)
}
checkEnd()
}
})
})
//为空时直接回调
files.length === 0 && callback()
})
}
var fileList = []
var timeStart = new Date()
var filePath = path.resolve('static/sx')
readDirRecur(filePath, function(filePath) {
console.log('done', new Date() - timeStart);//done 3
console.log(fileList); //打印出目录下的所有文件
更多推荐
已为社区贡献6条内容
所有评论(0)