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");
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小的更多相关文章

  1. 开始使用 swift 的 c语言 库

    为了手头上的一个项目,我需要使用CommonCrypto库中的HMAC函数.虽然苹果在swift中已经提供了许多系统库,但是CommonCrypto不在其中.庆幸的是,要使用这个库并不怎么费事,只需要做一点额外的工作.开始访问库在使用库之前,我们需要通知Swift编译器.要完成这个过程,我们有两种方式.它们都能在示例工程中正常运行,但是你应该根据你代码的用途来选择具体的方式.好消息是,你随便使用那

  2. Swift教程10-运算符与C语言的不同

    =,==这些运算符和其他语言的类似,是比较前后两个值是否相等,或者大小关系比较字符串内容是否相等,使用==即可但是Swift新增了===恒等于,是针对于引用类型,如两个对象之间是否是同一个对象与之对应的是!运算符示例Swift新增的??

  3. Swift 体会

    前言Swift体会我不算是一个果粉,但是我很喜欢苹果的产品,甚至可以说是狂热。运行速度从苹果官方所给出的数据来看,Objective-C比Python快2.8倍,而Swift比Python快3.9倍,可见苹果在Swift上下了大量的功夫进行优化。开发环境Swift语言的开发环境是苹果公司提供的集成开发环境Xcode,可以用来开发iOS应用、iOS游戏、OSX窗体程序、OSX游戏、OSX命令行程序,读者可以直接从AppStore中搜索并下载。由于Swift是苹果的产品,所以目前只支持苹果的系统。

  4. [翻译]Swift编程语言——关于Swift

    Swift是一门用于iOS和OSX应用开发的新的编程语言,它以C和Objective-C语言为基础,但没有C语言的兼容性约束。Swift的酝酿花费了数年。Apple为了Swift改进了已有的编译器、调试器和框架的底层。对于Objective-C语言的开发者,Swift是那样的似曾相识。在这个基础之上,Swift引入了许多新的特性并且支持面向对象编程。Swift将现代编程语言的精华和苹果工程文化中的智慧结合在一起。所有这些使得Swift对于开发者和Apple都是一笔对未来可靠的投资。

  5. swift笔记-赋值运算符

    复杂些的运算例如逻辑与运算符&&,或让i值加1的便捷自增运算符++i等。Swift支持大部分标准C语言的运算符,且改进许多特性来减少常规编码错误。当然允许你使用Swift的溢出运算符来实现溢出。本章节只描述了Swift中的基本运算符,高级运算符包含了高级运算符,及如何自定义运算符,及如何进行自定义类型的运算符重载。三元运算符操作三个操作对象,和C语言一样,Swift只有一个三元运算符,就是三目运算符(a?

  6. runTime(二)

    我们前面已经讲过一篇runtime原理,现在这篇文章主要介绍的是runtime是什么以及怎么用!首先,第一个问题,1》runtime实现的机制是什么,怎么用,一般用于干嘛?在我们平时编写的OC代码中,程序运行过程时,其实最终都是转成了runtime的C语言代码,runtime算是OC的幕后工作者比如说,下面一个创建对象的方法中,举例:OC:第二个问题runtime用来干什么呢??..这是我们学习runtime必须知道的函数!

  7. Swift:基本概述

    在介绍Swift之前,先说一段小插曲。Swift中文被翻译为“雨燕”。swift语言是苹果2014年6月3日正式推出一门新的的语言。),大家也许会困惑了,我不是在介绍Swift的使用吗?更容易让很多初学者愿意往Swift方面发展。并且它尽可能的保持方法名类名与objective-c中的一致,这也使得一些长期从事objective-c开发的程序员,很方便的转向Swift的开发。

  8. Swift学习笔记九——整型Int在Swift中表示的最大值最小值问题

    我们在学习C语言的时候,总是会去记忆一些数值,如int能表示的最大值最小值,long型能表示的最大值最小值。来到Swift中就比较简单了,直接用代码就可以看到类型所能表示的最值。。如图所示,Int8表示占一个字节,Int16表示占两个字节,以此类推。妈妈再也不用担心我记忆这些麻烦的数据了。

  9. Swift学习笔记十——Swift对数据溢出的智能检查

    我们之前说过很多次,Swift是一门类型安全的语言,能把很多运行时或者编译时遇到的问题在写代码过程中就暴露出来,使程序员少犯错误。Swift对于溢出的检查也是非常智能的,不像C语言一样,溢出了都不知道,运行中出现各种意想不到的“惊喜”。。在示例代码中,Int.max已经是当前所能表示的最大值,如果再执行加法操作,就会报错“Arithmeticoperation'.........+1'resultsintanoverflow”错误,明确告诉你已经溢出了。Int.min-1操作也是类似。所以我们再次体会到了

  10. swift-01-简述swift与OC区别

    swift语言Swift是Apple在WWDC2014所发布的一门编程语言,用来撰写OSX和iOS应用程序[1]。在设计Swift时.就有意和Objective-C共存,Objective-C是Apple操作系统在导入Swift前使用的编程语言Swift是供iOS和OSX应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束。至2014年6月发表,Swift大约历经4年的开发期。XcodePlaygrounds功能是Swift为苹果开发工具带来的最大创新,该功能提供强大的互动效果,

随机推荐

  1. Error: Cannot find module ‘node:util‘问题解决

    控制台 安装 Vue-Cli 最后一步出现 Error: Cannot find module 'node:util' 问题解决方案1.问题C:\Windows\System32>cnpm install -g @vue/cli@4.0.3internal/modules/cjs/loader.js:638 throw err; &nbs

  2. yarn的安装和使用(全网最详细)

    一、yarn的简介:Yarn是facebook发布的一款取代npm的包管理工具。二、yarn的特点:速度超快。Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。三、y

  3. 前端环境 本机可切换node多版本 问题源头是node使用的高版本

    前言投降投降 重头再来 重装环境 也就分分钟的事 偏要折腾 这下好了1天了 还没折腾出来问题的源头是node 使用的高版本 方案那就用 本机可切换多版本最终问题是因为nodejs的版本太高,导致的node-sass不兼容问题,我的node是v16.14.0的版本,项目中用了"node-sass": "^4.7.2"版本,无法匹配当前的node版本根据文章的提

  4. nodejs模块学习之connect解析

    这篇文章主要介绍了nodejs模块学习之connect解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. nodejs npm package.json中文文档

    这篇文章主要介绍了nodejs npm package.json中文文档,本文档中描述的很多行为都受npm-config(7)的影响,需要的朋友可以参考下

  6. 详解koa2学习中使用 async 、await、promise解决异步的问题

    这篇文章主要介绍了详解koa2学习中使用 async 、await、promise解决异步的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. Node.js编写爬虫的基本思路及抓取百度图片的实例分享

    这篇文章主要介绍了Node.js编写爬虫的基本思路及抓取百度图片的实例分享,其中作者提到了需要特别注意GBK转码的转码问题,需要的朋友可以参考下

  8. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  9. node.js三个步骤实现一个服务器及Express包使用

    这篇文章主要介绍了node.js三个步骤实现一个服务器及Express包使用,文章通过新建一个文件展开全文内容,具有一定的参考价值,需要的小伙伴可以参考一下

  10. node下使用UglifyJS压缩合并JS文件的方法

    下面小编就为大家分享一篇node下使用UglifyJS压缩合并JS文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

返回
顶部