明霞山资源网 Design By www.htccd.com
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");
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
明霞山资源网 Design By www.htccd.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
明霞山资源网 Design By www.htccd.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。