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无限树状列表实现代码
Jan 11 Javascript
jquery实现点击消失的代码
Mar 03 Javascript
QQ空间顶部折页撕开效果示例代码
Jun 15 Javascript
JavaScript实现按Ctrl键打开新页面
Sep 04 Javascript
javascript使用call调用微信API
Dec 15 Javascript
javascript作用域问题实例分析
Jul 13 Javascript
jQuery Mobile中的button按钮组件基础使用教程
May 23 Javascript
深入理解vue2.0路由如何配置问题
Jul 18 Javascript
利用JS判断客户端类型你应该知道的四种方法
Dec 22 Javascript
vue axios请求超时的正确处理方法
Apr 02 Javascript
浅谈redux以及react-redux简单实现
Aug 28 Javascript
js tab栏切换代码实例解析
Sep 03 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作的文本留言本的例子(四)
2006/10/09 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
ThinkPHP数据操作方法总结
2015/09/28 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
js中document.write和document.writeln的区别
2018/03/11 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
详解vue 组件
2020/06/11 Javascript
简洁的十分钟Python入门教程
2015/04/03 Python
Python实现截屏的函数
2015/07/25 Python
Python实现的爬虫功能代码
2017/06/24 Python
python中的计时器timeit的使用方法
2017/10/20 Python
tensorflow识别自己手写数字
2018/03/14 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
Python实现区域填充的示例代码
2021/02/03 Python
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
送给他或她的礼物:FUN.com
2018/08/17 全球购物
一年级学生期末评语
2014/04/21 职场文书
初中班级口号
2014/06/09 职场文书
股指期货心得体会
2014/09/10 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android