使用Javascript递归遍历本地文件夹

本文涉及的产品
简介: Created by Jerry Wang, last modified on Aug 13, 2014

打印本地temp folder所有的文件及最后修改时间:

<html>
<head>
<script language="javascript">
var s = "";
var result = [];
function FileInfo(path, name,time) {
  this.path = path;
  this.name = name;
  this.time = time;
}
function showFolderFileList(folderspec)
{
   var fso,f,fc,name;
   var url,str,file,filename;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(folderspec);
   fc = new Enumerator( f.files );
   for (; !fc.atEnd(); fc.moveNext( ) ) {
      filename = fso.GetFileName( fc.item( ) );
      var file = fso.getFile(folderspec + "\\" + filename);
      var fileInfo = new FileInfo(folderspec, filename,file.DateLastModified);
      result.push(fileInfo);
   }
   var Collection = new Enumerator(f.SubFolders);  
       for (Collection.moveFirst(); !Collection.atEnd(); Collection.moveNext()) {  
        var Obj = Collection.item();  
        showFolderFileList(Obj.Path);
    }  
   return result;
}
function display_result(result)
{
   var body = document.getElementById("mtbody");
   var size = result.length;
   var tr = document.getElementById("mtr");
   for( var i =0; i < size; i++ ) {
      var newTr = tr.cloneNode(true);
      var children = newTr.children;
      for( var j = 0 ; j < children.length; j++) {
        var item = children.item(j);
        switch(j) {
          case 0:
            item.innerHTML = result[i].path;
            break;
          case 1:
            item.innerHTML = result[i].name;
            break;
          case 2:
            item.innerHTML = result[i].time;
        }
      }
      body.appendChild(newTr);
    }
}
function run(i, folder) {
  var list_result = showFolderFileList('C:\\temp');
  display_result(list_result);
}
</script>
</head>
<body onload = "run('c:\\temp')">
  <div id ="table">
      <table id="mtable" border=1>
    <tbody id="mtbody">
      <tr id="mtr">
        <td>File Path</td>
        <td>File name</td>
        <td>Last Modify</td>
      </tr>
    </tbody>
  </table>
  </div>
</body>
</html>

因为使用了ActiveXobject,只能使用IE打开。

效果如下:image.png

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2月前
|
JavaScript 前端开发
JavaScript如何遍历表单元素?
JavaScript如何遍历表单元素?
|
3月前
|
JavaScript 前端开发
js遍历对象的方法
js遍历对象的方法
40 1
|
11天前
|
JavaScript 索引
JS 几种循环遍历
JS 几种循环遍历
9 0
JS 几种循环遍历
|
17天前
|
JavaScript
node.js 删除某个目录下所有的文件夹
node.js 删除某个目录下所有的文件夹
14 0
|
17天前
|
JavaScript
node.js递归拼凑成树形结构
node.js递归拼凑成树形结构
11 0
|
2月前
|
JavaScript 前端开发 API
JavaScript循环遍历常用的7种方法以及常用的数组 API
JavaScript循环遍历常用的7种方法以及常用的数组 API
37 0
|
2月前
|
JavaScript 前端开发
JavaScript递归的理解(最详细)
JavaScript递归的理解(最详细)
|
3月前
|
JavaScript 前端开发 容器
 JavaScript 遍历文档生成目录结构
 JavaScript 遍历文档生成目录结构
23 1
|
3月前
|
JavaScript 前端开发
【JavaScript精通之道】掌握数据遍历:解锁现代化遍历方法,提升开发效率!
在JavaScript开发中,经常需要对数组、对象等数据结构进行遍历操作。为了提高开发效率,JavaScript提供了多种灵活的遍历方法。本文将介绍JavaScript中常用的数据结构遍历方法,助你更好地操作数据。
|
4月前
|
存储 算法 JavaScript
JS算法-二叉树的后序遍历
JS算法-二叉树的后序遍历