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 相关文章推荐
div移动 输入框不能输入的问题
Nov 19 Javascript
解析瀑布流布局:JS+绝对定位的实现
May 08 Javascript
ie8本地图片上传预览示例代码
Jan 12 Javascript
原生js的RSA和AES加密解密算法
Oct 08 Javascript
JS实现间歇滚动的运动效果实例
Dec 22 Javascript
js原生Ajax的封装和原理详解
Mar 11 Javascript
es6的数字处理的方法(5个)
Mar 16 Javascript
Angularjs中使用指令绑定点击事件的方法
Mar 30 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
Sep 10 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
Jan 04 Javascript
Vue如何实现响应式系统
Jul 11 Javascript
mpvue写一个CPASS小程序的示例
Sep 04 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防盗链代码实例
2014/08/27 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
JavaScript DOM 学习第七章 表单的扩展
2010/02/19 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
2011/05/12 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
wxPython事件驱动实例详解
2014/09/28 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
2016/06/16 Python
Python获取当前页面内所有链接的四种方法对比分析
2017/08/19 Python
Django实战之用户认证(用户登录与注销)
2018/07/16 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
Python查找文件中包含中文的行方法
2018/12/19 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
中国央视网签名寄语
2014/01/18 职场文书
幼儿园安全检查制度
2014/01/30 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
个人简历自荐信
2014/06/26 职场文书
考试作弊检讨书
2014/10/21 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript