AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JavaScript

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

51自学网 http://www.wanshiok.com
node.js与C语言,实现遍历文件夹下最大的文件,node.js实现遍历文件夹下文件

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实现遍历文件夹下文件  
上一篇:Vue.js实现表格动态增加删除的方法(附源码下载)  下一篇:微信小程序通过api接口将json数据展现到小程序示例