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 相关文章推荐
细品javascript 寻址,闭包,对象模型和相关问题
Apr 27 Javascript
jQuery 第二课 操作包装集元素代码
Mar 14 Javascript
jquery分页插件AmSetPager(自写)
Apr 15 Javascript
jQuery模拟黑客帝国矩阵效果实例
Jun 28 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
Jan 08 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
May 13 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
Jun 01 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
Jun 11 Javascript
通过jquery的ajax请求本地的json文件方法
Aug 08 jQuery
JavaScript ES6箭头函数使用指南
Dec 30 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
Sep 06 Javascript
vant时间控件使用方法详解
Dec 24 Javascript
微信小程序通过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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
使用php+xslt在windows平台上
2006/10/09 PHP
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
php下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
php define的第二个参数使用方法
2013/11/04 PHP
php查找指定目录下指定大小文件的方法
2014/11/28 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
Javascript &amp; DHTML 实例编程(教程)DOM基础和基本API
2007/06/02 Javascript
JavaScript 继承详解(二)
2009/07/13 Javascript
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
node网页分段渲染详解
2016/09/05 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
Python中类的初始化特殊方法
2017/12/01 Python
详解Python自建logging模块
2018/01/29 Python
python如何使用unittest测试接口
2018/04/04 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
社团成立邀请函
2014/01/08 职场文书
寄语是什么意思
2014/04/10 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
计算机毕业生求职信
2014/06/10 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
2014年售票员工作总结
2014/11/19 职场文书
围城读书笔记
2015/06/26 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书
人身损害赔偿协议书
2016/03/22 职场文书