node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小


Posted in Javascript onJanuary 20, 2017

node.js版    

遍历文件夹下最大的文件,并输出路径,大小

实现代码:

/*
  遍历文件夹下最大的文件,并输出路径,大小
*/
 
function findmax(basepath){
  //只能执行一次
  if(findmax.s) return;
  findmax.s = true;
  var fs = require('fs');
  var maxfile = 0;
  var count = 0;
  var begin = new Date().getTime();
  function Traversal(filepath){
    fs.readdir(filepath, function(err,files){
      if(err) return;
      files.forEach(function(file,index,files){
        //console.log(index + "=" + filepath +"\\" + file);
        var tmppath = filepath +"\\" + file;
        fs.stat(tmppath, function (err, stats) {
         if (err) {
          console.log("打开文件错误" + err);
          return;
         };
         if(stats.isDirectory()) Traversal(tmppath);
         else {
          //console.log(++count +" "+ tmppath + "   " + stats.size);
          count++;
          if(maxfile < stats.size)
            maxfile = stats.size;
         }
        });
      });
    });
  }
  Traversal(basepath);
  process.on('exit', function () {
    var end = new Date().getTime();
   console.log(count + '结束耗时:' + (end - begin) + "ms " + maxfile);
  }); 
  console.log(basepath);
}
 
findmax('D:\\devtools\\');

 C/C++实现代码    

#include <stdio.h> 
#include <windows.h>
#include <time.h>
 
DWORD maxsize = 0;
clock_t start, end;
DWORD count = 0;
 
void find(char * lpPath) 
{ 
  char szFind[MAX_PATH],szFile[MAX_PATH];
  DWORD tmpsize = 0;
  WIN32_FIND_DATA FindFileData; 
  strcpy(szFind,lpPath); 
  strcat(szFind,"\\*.*");
  HANDLE hFind=FindFirstFile(szFind,&FindFileData); 
  if(INVALID_HANDLE_VALUE == hFind) return; 
  while(TRUE)
  { 
    if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//如果为目录
    { 
      if(FindFileData.cFileName[0] != '.') //判断是否为. or ..
      { 
        strcpy(szFile,lpPath);
        strcat(szFile,"\\");
        strcat(szFile,FindFileData.cFileName); 
        find(szFile);//递归调用
      } 
    }else{ 
      //printf("%s\n",FindFileData.cFileName);
      count++;//文件计数
      tmpsize = FindFileData.nFileSizeLow;
      if(maxsize < tmpsize)  maxsize = tmpsize;
    }
    //下一个文件为空,则退出
    if(!FindNextFile(hFind,&FindFileData)) break; 
  } 
} 
 
void main() 
{ 
  char filepath[MAX_PATH]="d:\\devtools"; 
  printf("%s\n",filepath);
  start = clock();
  find(filepath); 
  end = clock();
  printf("文件数:%d %dms max File:%d",count,end - start,maxsize);
  //system("PAUSE");
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
根据经纬度计算地球上两点之间的距离js实现代码
Mar 05 Javascript
jQuery function的正确书写方法
Aug 02 Javascript
把字符串按照特定的字母顺序进行排序的js代码
Jan 28 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
Aug 13 Javascript
深入解析JavaScript的闭包机制
Oct 20 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
Apr 17 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
May 21 Javascript
Javascript使用SWFUpload进行多文件上传
Nov 16 Javascript
浅析bootstrap原理及优缺点
Mar 19 Javascript
vue.js实现只能输入数字的输入框
Oct 19 Javascript
Javascript实现html转pdf高清版(提高分辨率)
Feb 19 Javascript
Axios代理配置及封装响应拦截处理方式
Apr 07 Vue.js
微信小程序通过api接口将json数据展现到小程序示例
Jan 20 #Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
Jan 20 #Javascript
Vue开发过程中遇到的疑惑知识点总结
Jan 20 #Javascript
JavaScript简单验证表单空值及邮箱格式的方法
Jan 20 #Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
Jan 20 #Javascript
BootStrap CSS全局样式和表格样式源码解析
Jan 20 #Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
Jan 20 #Javascript
You might like
基于PHP异步执行的常用方式详解
2013/06/03 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
PHP实现计算器小功能
2020/08/28 PHP
JS 的应用开发初探(mootools)
2009/12/19 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
Python和Java进行DES加密和解密的实例
2018/01/09 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
python交易记录链的实现过程详解
2019/07/03 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
python实现局域网内实时通信代码
2019/12/22 Python
python实现感知机模型的示例
2020/09/30 Python
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
上班迟到检讨书
2014/01/10 职场文书
升职演讲稿范文
2014/05/23 职场文书
设计师求职信
2014/07/01 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
承租经营合作者协议书
2014/10/01 职场文书
2015公务员试用期工作总结
2014/12/12 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python