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中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
Jan 08 Javascript
jQuery提交表单ajax查询实例代码
Oct 07 Javascript
jQuery+ajax实现无刷新级联菜单示例
May 21 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
Apr 16 Javascript
快速解决js开发下拉框中blur与click冲突
Oct 10 Javascript
JavaScript实现自动切换图片代码
Oct 11 Javascript
Javascript(es2016) import和require用法和区别详解
Aug 11 Javascript
Angularjs实现控制器之间通信方式实例总结
Mar 27 Javascript
微信小程序image图片加载完成监听
Aug 31 Javascript
基于layui的table插件进行复选框联动功能的实现方法
Sep 19 Javascript
jquery实现抽奖功能
Oct 22 jQuery
QT与javascript交互数据的实现
May 26 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
php下的权限算法的实现
2007/04/28 PHP
通达OA公共代码 php常用检测函数
2011/12/14 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
js word表格动态添加代码
2010/06/07 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
2011/07/28 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
2012/12/10 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
VUE UPLOAD 通过ACTION返回上传结果操作
2020/09/07 Javascript
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
python实现的希尔排序算法实例
2015/07/01 Python
Python 备份程序代码实现
2017/03/06 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
美国第一香水网站:Perfume.com
2017/01/23 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
实习生单位鉴定意见
2013/12/04 职场文书
教师自我评价范文
2013/12/16 职场文书
优秀教师获奖感言
2014/01/31 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
公司备用金管理制度
2015/08/04 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python