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 相关文章推荐
jQuery选择器的工作原理和优化分析
Jul 25 Javascript
JavaScript 实现类的多种方法实例
May 01 Javascript
用JavaScript修改CSS属性的代码
May 06 Javascript
JavaScript知识点整理
Dec 09 Javascript
Node.js 实现简单小说爬虫实例
Nov 18 Javascript
React利用插件和不用插件实现双向绑定的方法详解
Jul 03 Javascript
vuejs事件中心管理组件间的通信详解
Aug 09 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
Nov 07 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
Aug 30 Javascript
微信小程序实现手势滑动效果
Aug 26 Javascript
javascript 内存模型实例详解
Apr 18 Javascript
JavaScript中展开运算符及应用的实例代码
Jan 14 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
PHP单例模式简单用法示例
2017/06/23 PHP
php命令行模式代码实例详解
2021/02/26 PHP
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
Python语言实现机器学习的K-近邻算法
2015/06/11 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
css背景图片的背景裁切、背景透明度、背景变换等效果运用
2012/12/24 HTML / CSS
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
AmazeUI 单选框和多选框的实现示例
2020/08/18 HTML / CSS
介绍一下JMS编程步骤
2015/09/22 面试题
工业设计专业推荐信
2013/10/29 职场文书
常务副总经理岗位职责
2015/02/02 职场文书
中学图书馆工作总结
2015/08/11 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
python脚本框架webpy的url映射详解
2021/11/20 Python
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android