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中的window.open返回object的错误的解决方法
Aug 15 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
Mar 24 Javascript
JQuery从头学起第二讲
Jul 04 Javascript
IE6下通过a标签点击切换图片的问题
Nov 14 Javascript
jquery offset函数应用实例
Nov 14 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
Aug 07 Javascript
jQuery照片伸缩效果不影响其他元素的布局
May 09 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
Aug 17 Javascript
JS实现的简易拖放效果示例
Dec 29 Javascript
AngularJS 验证码60秒倒计时功能的实现
Jun 05 Javascript
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
element-ui中Table表格省市区合并单元格的方法实现
Aug 07 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下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
shiro授权的实现原理
2017/09/21 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
vue下拉列表功能实例代码
2018/04/08 Javascript
vue 不使用select实现下拉框功能(推荐)
2018/05/17 Javascript
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
详解vue项目打包步骤
2019/03/29 Javascript
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
Python双向循环链表实现方法分析
2018/07/30 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
Python 实现国产SM3加密算法的示例代码
2020/09/21 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
国家地理在线商店:Shop National Geographic
2018/06/30 全球购物
酒店总经理助理职责
2014/02/12 职场文书
学校后勤岗位职责
2014/02/19 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
大跃进口号
2014/06/16 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL