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 四则运算精度修正函数代码
May 31 Javascript
QUnit jQuery的TDD框架
Nov 04 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
May 08 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
Feb 02 Javascript
javascript强制点击广告的方法
Feb 06 Javascript
基于Javascript实现倒计时功能
Feb 22 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
Sep 03 jQuery
vue-resouce设置请求头的三种方法
Sep 12 Javascript
JavaScript轮播停留效果的实现思路
May 24 Javascript
从源码里了解vue中的nextTick的使用
Nov 22 Javascript
Vue实现移动端左右滑动效果的方法
Nov 27 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
Oct 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
BBS(php &amp; mysql)完整版(一)
2006/10/09 PHP
PHP+javascript模拟Matrix画面
2006/10/09 PHP
显示程序执行时间php函数代码
2013/08/29 PHP
php中current、next与reset函数用法实例
2014/11/17 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
php修改数组键名的方法示例
2017/04/15 PHP
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
jQuery向后台传入json格式数据的方法
2015/02/13 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
JavaScript实现拖动对话框效果的实现代码
2020/10/12 Javascript
[13:16]INFAMOUS vs VGJ T BO3
2018/06/07 DOTA
在MAC上搭建python数据分析开发环境
2016/01/26 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
金融行业务员的自我评价
2013/12/13 职场文书
四年级下册教学反思
2014/02/01 职场文书
捐款倡议书范文
2014/02/02 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书
centos8安装MongoDB的详细过程
2021/10/24 MongoDB
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL