精易论坛

标题: 文件_枚举命令出问题 [打印本页]

作者: mumu312    时间: 2023-4-28 13:16
标题: 文件_枚举命令出问题
本帖最后由 mumu312 于 2023-4-28 13:24 编辑


文件数量 = 文件_枚举 (文件路径, “*.*”, 文件数组, 假, 假, 真)  
如果限定文件名称如“*.doc”,则会出现两个相同的文件。
如果是全部文件,则是一组文件。

系统为win7  64位系统
易语言 5.8   精易模块11.0.5   10

作者: 小了白了兔    时间: 2023-4-28 14:26
文件数量 = 文件_枚举 (文件路径, “*.*”, 文件数组, 假, 假, 真)  
最后一个参数     为真   不主动清空数组     
确认一下是不是这个原因   你进行了两次枚举导致相同文件出现?
作者: 小了白了兔    时间: 2023-4-28 14:28
限定文件名称的话   你的代码又是怎样的?   先自查一下是否用法不对
作者: 小了白了兔    时间: 2023-4-28 14:31
win7  64位   5.9   没有你描述的情况出现
作者: mumu312    时间: 2023-5-2 15:14
本帖最后由 mumu312 于 2023-5-2 15:21 编辑
花的嫁纱 发表于 2023-4-28 14:26
文件数量 = 文件_枚举 (文件路径, “*.*”, 文件数组, 假, 假, 真)  
最后一个参数     为真   不主动清空 ...

抱歉,五一之前忘记发了。
最后一个参数,无论是真是假,都不影响最后的结果,也就是说文件数组的内容是重复的两组数据。

把第二个参数改为*.*,不限制文件类型的情况下,数组数量是正确的,文件数组的内容是正确的。
这段代码中我只用了一个文件枚举命令。


作者: Suky    时间: 2023-5-2 16:38
mumu312 发表于 2023-5-2 15:14
抱歉,五一之前忘记发了。
最后一个参数,无论是真是假,都不影响最后的结果,也就是说文件数组的内容是重 ...

如果我猜得没错的话,你截图的这份代码,文件数组里重复的文件是 <.pptx>后缀的
而其他的并没有出现重复的情况   对么?
作者: Suky    时间: 2023-5-2 16:47
经过测试,我发现是核心库的 寻找文件() 对office文档不同版本后缀名文件的处理的bug
*.doc、*.ppt、*.xls  这些是97-2003版本的文件后缀名
后面的97办开始   后缀名多加了一个x
使用核心库的   寻找文件()  进行寻找的时候     寻找不带x的后缀的文件     会把后来版本的带x后缀的文件也一起枚举出来
而你寻找的文件后缀里面同时存在     *.ppt*.pptx,那么  *.pptx的文件就会被枚举到两次,就出现了你所描述的问题

你这问题有点像之前的这个帖子:
文件_枚举
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14747034
(出处: 精易论坛)
应该算是用法问题     硬要说bug的话,只能勉强说是这个命令没做得太完善吧
作者: Suky    时间: 2023-5-2 16:50
对精易模块   文件_枚举    重复枚举情况的改善
https://125.confly.eu.org/forum.php?mod=viewthread&tid=14747066
(出处: 精易论坛)

可以看看我之前这个帖
有兴致的话,自己再写个判断和移除寻找文件后缀名的判断     如果同时存在两个同类型不同版本office文件后缀,就保留旧版后缀(不带x的)

实际上自己了解一下特例情况和用法     规避这个坑就好了

本帖所述bug产生原因在于核心库的    寻找文件() 命令   
作者: mumu312    时间: 2023-5-2 17:31
Suky 发表于 2023-5-2 16:47
经过测试,我发现是核心库的 寻找文件() 对office文档不同版本后缀名文件的处理的bug
*.doc、*.ppt、*.xl ...

确实如此,非常感谢。我做下调整
作者: 梦回故里    时间: 2023-10-9 17:32
希望大神把这个模块整好!
作者: 梦回故里    时间: 2023-10-9 17:33
希望大神把这个模块整好!
作者: 梦回故里    时间: 2023-10-9 17:33
文件_枚举1 ,这个命令的最后一个参数如何用,请大神告知一下!




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4