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

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 #include

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

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

相关文章

现在的js代码都是这种高级点的方式语法 , 就是ts语法 ,要使用ts语法那就要先安装一下 先安装nodejs最...
nvm是node版本管理工具 为了解决node各种版本存在不兼容现象 nvm是让你在同一台机器上安装和切换不同版...
1、安装nodejs 2、在项目文件夹目录下创建一个js文件,命名server.js(自定义名称),内容如下 3、打开命令...
1.连接路径:path.join([path1][, path2][, ...]) path.join()方法可以连接任意多个路径字符串。要连接...
简介 1.aes加密简单来说,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个...
定义 Object.keys 定义:返回一个对象可枚举属性的字符串数组; Object.getOwnPropertyNames 定义:返回...