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

发布时间 - 2026-01-10 22:40:12    点击率:

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语言  # 实现遍历文件夹下最大的文件  # node.js实现遍历文件夹下文件  # C语言实现遍历文件夹中的文件  # C语言 实现遍历一个文件夹的所有文件  # C语言按关键字搜索文件夹中文件的方法  # C语言实现清空指定文件夹中所有文件的方法  # C语言实现的统计php代码行数功能源码(支持文件夹、多目录)  # C语言scandir函数获取文件夹内容的实现  # 遍历  # 递归  # 希望能  # 谢谢大家  # 为空  # 判断是否  # console  # filepath  # log  # forEach  # Traversal  # files  # err  # readdir  # index  # file  # process  # lt  # exit  # devtools 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  长沙企业网站制作哪家好,长沙水业集团官方网站?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  Linux系统命令中screen命令详解  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  PythonWeb开发入门教程_Flask快速构建Web应用  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  Laravel如何生成URL和重定向?(路由助手函数)  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Java解压缩zip - 解压缩多个文件或文件夹实例  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  如何在香港服务器上快速搭建免备案网站?  如何在Ubuntu系统下快速搭建WordPress个人网站?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Laravel PHP版本要求一览_Laravel各版本环境要求对照  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  Android okhttputils现在进度显示实例代码  lovemo网页版地址 lovemo官网手机登录  三星、SK海力士获美批准:可向中国出口芯片制造设备  如何在景安云服务器上绑定域名并配置虚拟主机?  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  用v-html解决Vue.js渲染中html标签不被解析的问题  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  Laravel如何处理异常和错误?(Handler示例)  网站制作壁纸教程视频,电脑壁纸网站?  Python并发异常传播_错误处理解析【教程】  活动邀请函制作网站有哪些,活动邀请函文案?  Python正则表达式进阶教程_复杂匹配与分组替换解析  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  如何快速生成橙子建站落地页链接?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  微信小程序 input输入框控件详解及实例(多种示例)  教你用AI润色文章,让你的文字表达更专业  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel如何创建自定义Artisan命令?(代码示例)  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  如何在万网利用已有域名快速建站?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  javascript事件捕获机制【深入分析IE和DOM中的事件模型】