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 相关文章推荐
游戏人文件夹程序 ver 4.03
Jul 14 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
Sep 13 Javascript
js中函数声明与函数表达式
Jun 03 Javascript
js生成随机数的方法实例
Oct 16 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
Oct 22 Javascript
详解javascript中的事件处理
Nov 06 Javascript
javascript判断图片是否加载完成的方法推荐
May 13 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
Nov 04 Javascript
vue webuploader 文件上传组件开发
Sep 23 Javascript
babel的使用及安装配置教程
Feb 22 Javascript
微信小程序如何调用图片接口API并居中显示
Jun 29 Javascript
详解Node.js使用token进行认证的简单示例
May 25 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日期时间函数的高级应用技巧
2009/05/16 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
jquery提升性能最佳实践小结
2010/12/06 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
Node.js Sequelize如何实现数据库的读写分离
2016/10/23 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
js实现飞机大战小游戏
2020/08/26 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
python 制作python包,封装成可用模块教程
2020/07/13 Python
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
美国相机和电子产品零售商:Beach Camera
2020/11/26 全球购物
英文自荐信格式
2013/11/28 职场文书
水务局局长岗位职责
2013/11/28 职场文书
战略合作协议书范本
2014/04/18 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python