function showFile() {
for(var i = 0; i< files.length; i++){
var itemFile = files[i];
fs.stat(__dirname + itemFile, function (err, stat){ //
if (stat.isDirectory()) {
console.log(' '+i+' \033[36m' +itemFile + '/\033[39m'); //
}else{
console.log(' '+i+' \033[90m' + itemFile + '\033[39m');
}
});
}
process.stdout.write('\033[33mEnter your choice: \033[39m');
}

上面的代码段在语法上是没有问题的,在执行的时候抛出了错误:

TypeError: Cannot read property 'isDirectory' of undefined
at ...\index.js:46:13
at FSReqWrap.oncomplete (fs.js:82:15)

这里错误在于使用synchronous的for循环.

如果使用下面的方法代替showFile(),it works!

 function file(i) {
var filename = files[i];
/**
* fs.stat :
*/
fs.stat(__dirname + '/' + filename, function (err, stat){ //
if (stat.isDirectory()) {
console.log(' '+i+' \033[36m' +filename + '/\033[39m'); //
}else{
console.log(' '+i+' \033[90m' + filename + '\033[39m');
} i++; if (i== files.length) {
console.log('');
process.stdout.write('\033[33mEnter your choice: \033[39m');
process.stdin.resume();
}else{
file(i);
}
});
}

Asynchronous fs.stat.isDirectory()的更多相关文章

  1. 详解 ASP.NET异步

    在前文中,介绍了.NET下的多种异步的形式,在WEB程序中,天生就是多线程的,因此使用异步应该更为谨慎.本文将着重展开ASP.NET中的异步. [注意]本文中提到的异步指的是服务器端异步,而非客户端异 ...

  2. 详解.NET异步

    在说到异步前,先来理一下几个容易混淆的概念,并行.多线程.异步. 并行,一般指并行计算,是说同一时刻有多条指令同时被执行,这些指令可能执行于同一CPU的多核上,或者多个CPU上,或者多个物理主机甚至多 ...

  3. Andoid java文件中的Log检查工具

    AndroidLogChecker 由于发布软件版本的时候我们需要把Log注释掉,此工具可以检查java类中的Log所在行以及是否已经注释. Github: https://github.com/cu ...

  4. Jsp实现筛选并压缩文件批量下载

    Jsp实现筛选并压缩文件批量下载 首先明确一下需求,网页端点击一下button,传递特定的参数到download.jsp网页,筛选文件,对过滤得到的文件进行压缩,然后返回前端一个压缩包下载. 以下的代 ...

  5. 让你的 Node.js 应用跑得更快的 10 个技巧(转)

    Node.js 受益于它的事件驱动和异步的特征,已经很快了.但是,在现代网络中只是快是不行的.如果你打算用 Node.js 开发你的下一个Web 应用的话,那么你就应该无所不用其极,让你的应用更快,异 ...

  6. JKXY的视频内容下载工具类

    package cn.jsonlu.make.license; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONOb ...

  7. Java处理文件小例子--获取全国所有城市的坐标

    需求:前端展示数据,全国城市的坐标

  8. Java 执行jar linux 实例

    需求:通过执行jar的方式 ,把某个文件路径下的用户数据同步到redis 1.main 函数 public class Main { private static Logger logger = Lo ...

  9. 七牛云- Java 端 使用

    项目 中需要把 图片放到 图片服务器上托管, 所以使用了七牛, 注册之后每个月 有免费100 万 次get请求,先说说怎么使用: 1 .注册, 获取自己的AK,SK

随机推荐

  1. 报文格式:xml 、定长报文、变长报文

    目前接触到的报文格式有三种:xml .定长报文.变长报文 . 此处只做简单介绍,日后应该会深入学习到三者之间如何解析,再继续更新.——2016.9.23 XML XML 被设计用来传输和存储数据. H ...

  2. ORA-01113: file xxxx needs media recovery

    由于规范存储位置以及存储空间调整缘故需要移动表空间MRP_INDEX2的数据文件,如下所示,首先将表空间MRP_INDEX2脱机; 然后复制数据文件:接着重命名数据文件,最后将表空间MRP_INDEX ...

  3. 如何读懂复杂的C语言声明

    本文已迁移至: http://www.danfengcao.info/c/c++/2014/02/25/howto-understand-complicated-declaration-of-c.ht ...

  4. 删除Windows中隐藏的物理网卡和网络虚拟化失败后的虚拟网卡

    Windows环境下,在更换硬件服务器主板和网卡等硬件.恢复操作系统或者网络虚拟化失败后,可能会出现网卡方面的问题.例如,设备管理器中多了不应该存在的网卡:因命名冲突无法重命名当前网络连接:IP地址冲 ...

  5. Java中怎么切换窗口

    首先,创建一个窗口对象: eg:  JFram frame = JFrame();//创建一个窗体 frame.setVisible(true);//设置窗体可见,默认不可见 然后编写相关应用或组件… ...

  6. Red Hat Enterprise Linux Server 6.5安装GCC 4.9.2

    现在很多程序员都应用GCC,怎样才能更好的应用GCC.目前,GCC可以用来编译C/C++.FORTRAN.JAVA.OBJC.ADA等语言的程序,可根据需要选择安装支持的语言.本文以在RedHat L ...

  7. x01.Weiqi.9: 点目功能

    添加点目功能,虽不中,不远也.还是先看看截图吧. 确保其可行,再看一张: 其点目结果,还是比较令人满意的.这主要得益于多遍扫描,如编译器的词法分析阶段,下面的代码可以证明: private void ...

  8. Window10可用的转串口驱动CH340

    下载地址:http://pan.baidu.com/s/1cvCNtO

  9. docker-8 docker小技巧

    docker使用小技巧 杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有的已经停止的容器 docker rm $(docker ps -a -q) 删除所 ...

  10. [WPF系列]基础Combox

    示例     参考 WPF combobox SelectedValue binding to string Confused with wpf ComboBox DisplayMemberPath, ...