首页 > 代码库 > Node.js学习笔记(5)--文件简单操作
Node.js学习笔记(5)--文件简单操作
说明(2017-5-3 11:53:45):
1. foo.js
1 var fs = require("fs"); 2 var documents = []; 3 fs.readdir("./段虹",function(err,files){ 4 5 for(let i = 0; i < files.length; i++){ 6 // var filename = files[i]; 7 fs.stat("./段虹/" + files[i], function(err, stats){ 8 if(stats.isDirectory()){ 9 documents.push(files[i]); 10 } 11 // 异步的,循环语句还没执行完,就输出了,所以不能放在外面!! 12 console.log(documents); 13 }); 14 } 15 });
注意:
1. fs模块,readdir读取文件夹,文件夹最好用“./xxx”的形式,与linux统一。readdir里面有一个回调函数,参数files是此文件夹里的所有文件、文件夹的名字,但不包括子文件夹。
2. 遍历此文件夹,同fs.stat判断files里的文件是不是文件夹,如果是,就push到documents这个数组里。
3. 因为异步执行,console.log()不能放到外面,不然循环还没执行完,就先输出了。
4. 同时,for循环里最初用var i = 0的时候,输出的都是同一个文件夹的名字,这里应该是闭包的问题,其实也是异步,先执行完for循环,再输出文件名,i已经是最大值了,所以输出都一样。在这里,将var改成let。
5. 但是开始不能var filename = files[i],不然就跟用var一样了,不知为何。
Node.js学习笔记(5)--文件简单操作
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。