开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 352|回复: 16
收起左侧

[讨论] 文件夹深部不大但文件有50万个,我怎么才能性能最快的找...

[复制链接]
发表于 2025-3-20 07:50:17 | 显示全部楼层 |阅读模式   江西省宜春市
请教下文件夹深部不大但文件有50万个,我怎么才能性能最快的找出重复文件名的文件路径?我现在做法是递归,开10个线程跑,把文件路径加文件名字同时写入一个集变量数组(当然会判断新写入数据是否再数组里存在过),但我的方法测试了下,7万数据是16分钟,1个小时是16万数据(且因为写入集变量数组前要判断是否有重复值,写入的数据量越大越慢),性能远远达不到要求。求大神指点下。谢谢
结帖率:0% (0/1)

签到天数: 1 天

发表于 4 天前 | 显示全部楼层   湖北省武汉市
文件夹下的文件个数好像有个上限吧?50W都还没达到么?
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 1 天

发表于 2025-3-20 13:43:15 | 显示全部楼层   贵州省毕节市
本帖最后由 笨来无一悟 于 2025-3-20 13:44 编辑
HccCmHj 发表于 2025-3-20 11:13
大神,易语言哈希表怎么用?我现在的需求就是有文件名一致就判定是同一个文件。 ...

哈希表类_汇编版(HashMap_ASM)  支持自定义数据值
https://bbs.125.la/forum.php?mod=viewthread&tid=14516715
(出处: 精易论坛)

回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-20 11:26:00 | 显示全部楼层   江西省宜春市
a019872140 发表于 2025-3-20 11:18
把所有的文件名..文件名头加个顺序数字..写到一个txt里面...在用字节集或者文本寻找.....别说50万个了 5忆 ...

不是查找,是找出文件里重名的不同路径下的文件
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 1 天

发表于 2025-3-20 11:18:57 | 显示全部楼层   广东省江门市
把所有的文件名..文件名头加个顺序数字..写到一个txt里面...在用字节集或者文本寻找.....别说50万个了 5忆个都是0.1找到
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-20 11:13:54 | 显示全部楼层   江西省宜春市
笨来无一悟 发表于 2025-3-20 08:49
哈希表 判断是否重复 md5判断是不是同一个文件 而不是看文件名 除非你确定名字相同的就一定是内容也相同的 ...

大神,易语言哈希表怎么用?我现在的需求就是有文件名一致就判定是同一个文件。

点评

去重 用哈希是最快的 传统的循环查找数组对比之下就是蜗牛   贵州省毕节市  发表于 2025-3-20 14:53
模块你下载了看看 加入哈希的时候会有返回值 返回某某某 就是已经存在了 模块翻翻就有   贵州省毕节市  发表于 2025-3-20 14:52
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-20 11:12:34 | 显示全部楼层   江西省宜春市
辽阳小哲 发表于 2025-3-20 08:56
sqlite数据库,记录文件路径和md5,文件扫描入库,cha询语句查重。

没有数据库,我用everything完成了第一步,生成了目录下路径+文件名的TXT文件。
回复 支持 反对

使用道具 举报

结帖率:100% (10/10)

签到天数: 2 天

发表于 2025-3-20 09:43:03 | 显示全部楼层   山东省济南市
直接调用Everything的dll
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-20 09:01:04 | 显示全部楼层   江西省宜春市
fireandice 发表于 2025-3-20 08:36
有一个专门搜索的软件叫做Everything,可以使用它测试下是否满足你的需求,它有sdk ...

太感谢了,所有的文件名和路径都生成了,比我自己递归的快很多很多倍,谢谢大神
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2025-3-20 08:56:29 | 显示全部楼层   辽宁省辽阳市
sqlite数据库,记录文件路径和md5,文件扫描入库,cha询语句查重。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表