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 相关文章推荐
JSON JQUERY模板实现说明
Jul 03 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Sep 13 Javascript
处理及遍历XML文档DOM元素属性及方法整理
Aug 23 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
Apr 02 Javascript
C++中的string类的用法小结
Aug 07 Javascript
ReactNative-JS 调用原生方法实例代码
Oct 08 Javascript
原生js实现秒表计时器功能
Feb 16 Javascript
如何抽象一个Vue公共组件
Oct 17 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
Jan 26 Javascript
微信小程序按钮去除边框线分享页面功能
Aug 27 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
Oct 12 Javascript
JavaScript Dom 绑定事件操作实例详解
Oct 02 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
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
php对数组排序的简单实例
2013/12/25 PHP
Django 中 cookie的使用
2017/08/17 PHP
jQuery使用手册之 事件处理
2007/03/24 Javascript
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
控制input输入框中提示信息的显示和隐藏的方法
2014/02/12 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
jquery实现左右滑动菜单效果代码
2015/08/27 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
JavaScript经典案例之简易计算器
2020/08/24 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
[01:10]3.19DOTA2发布会 三代刀塔人第一代
2014/03/25 DOTA
Python爬取京东的商品分类与链接
2016/08/26 Python
简单了解python关系(比较)运算符
2019/07/08 Python
python对绑定事件的鼠标、按键的判断实例
2019/07/17 Python
python实现静态服务器
2019/09/05 Python
python之array赋值技巧分享
2019/11/28 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
办公室文秘岗位职责
2013/11/15 职场文书
经理任命书模板
2014/06/06 职场文书
实习工作表现评语
2014/12/31 职场文书
蓬莱阁导游词
2015/02/04 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
小学工作总结2015
2015/05/04 职场文书
怎样写家长意见
2015/06/04 职场文书
开工典礼致辞
2015/07/29 职场文书
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python
python unittest单元测试的步骤分析
2021/08/02 Python