方法一:

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); //打印出目录下的所有文件

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐