zoukankan      html  css  js  c++  java
  • 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一样了,不知为何。

  • 相关阅读:
    Memcached基本架构和思想
    varnish和squid的对比
    常用排序讲解
    数据结构堆的一种比较明白的讲解
    磁盘挂载MOUNT 445问题集
    mysql 如何提高批量导入的速度
    云平台涅槃重生计划
    NumPy、SciPy 等Python包在Windows下的whl安装包下载
    表迁移工具的选型-复制ibd的方法
    下一步的技术研究方向
  • 原文地址:https://www.cnblogs.com/Jacklovely/p/6801226.html
Copyright © 2011-2022 走看看