node.js與C語言 實(shí)現(xiàn)遍歷文件夾下最大的文件,并輸出路徑,大小
更新時(shí)間:2017年01月20日 11:21:18 投稿:lqh
這篇文章主要介紹了node.js與C語言 實(shí)現(xiàn)遍歷文件夾下最大的文件,并輸出路徑,大小的相關(guān)資料,需要的朋友可以參考下
node.js版
遍歷文件夾下最大的文件,并輸出路徑,大小
實(shí)現(xiàn)代碼:
/*
遍歷文件夾下最大的文件,并輸出路徑,大小
*/
function findmax(basepath){
//只能執(zhí)行一次
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("打開文件錯(cuò)誤" + 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 + '結(jié)束耗時(shí):' + (end - begin) + "ms " + maxfile);
});
console.log(basepath);
}
findmax('D:\\devtools\\');
C/C++實(shí)現(xiàn)代碼
#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);//遞歸調(diào)用
}
}else{
//printf("%s\n",FindFileData.cFileName);
count++;//文件計(jì)數(shù)
tmpsize = FindFileData.nFileSizeLow;
if(maxsize < tmpsize) maxsize = tmpsize;
}
//下一個(gè)文件為空,則退出
if(!FindNextFile(hFind,&FindFileData)) break;
}
}
void main()
{
char filepath[MAX_PATH]="d:\\devtools";
printf("%s\n",filepath);
start = clock();
find(filepath);
end = clock();
printf("文件數(shù):%d %dms max File:%d",count,end - start,maxsize);
//system("PAUSE");
}
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
詳解nodeJs文件系統(tǒng)(fs)與流(stream)
這篇文章主要介紹了詳解nodeJs文件系統(tǒng)(fs)與流(stream),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01
詳解基于Node.js的微信JS-SDK后端接口實(shí)現(xiàn)代碼
本篇文章主要介紹了詳解基于Node.js的微信JS-SDK后端接口實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07
Node.js API詳解之 dns模塊用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 dns模塊用法,結(jié)合實(shí)例形式分析了Node.js API中dns模塊基本功能、相關(guān)函數(shù)與使用技巧,需要的朋友可以參考下2020-05-05
利用adb shell和node.js實(shí)現(xiàn)抖音搶紅包功能(推薦)
這篇文章主要介紹了利用adb shell和node.js實(shí)現(xiàn)抖音搶紅包功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-02-02
淺談Node.js ORM框架Sequlize之表間關(guān)系
下面小編就為大家?guī)硪黄獪\談Node.js ORM框架Sequlize之表間關(guān)系。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
Node.js實(shí)現(xiàn)批量下載圖片簡單操作示例
這篇文章主要介紹了Node.js實(shí)現(xiàn)批量下載圖片簡單操作,結(jié)合實(shí)例形式分析了node.js批量下載圖片的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-01-01

