精易论坛
标题: 会要命的BUG 目录_清空、目录_强力清空、目录_删除 [打印本页]
作者: zhifu3158 时间: 2017-2-13 23:25
标题: 会要命的BUG 目录_清空、目录_强力清空、目录_删除
本帖最后由 zhifu3158 于 2017-2-14 02:07 编辑
会要命的BUG 目录_清空【删除源码目录下所有的程序】
模块版本:5.6最新版
所用系统:Win7 32位
命令名称:目录_清空、目录_强力清空、目录_删除 、目录_枚举子目录、目录_同步更新、目录_更新、目录_是否有子目录、目录_枚举子目录1 等需要判断传递的目录名最后是否加了“\”功能的子程序!
BUG描述:子程序内的目录参数赋值给局变量不完善,
我的联系QQ:815009714
这个问题十分重要,一句简单的命令就能使源码目录里的所有的易语言源码和模块都给删除了!
精易模块源码中对传递的参数 目录名 最后的\ 判断不完整!
修改如下:将原先的 ”如果真”命令 替换成 ”如果 “命令。并增加 ”局_目录 = 要删除文件的目录” 命令
目录_清空、目录_强力清空、目录_删除 、目录_枚举子目录、目录_同步更新、目录_更新、目录_是否有子目录、目录_枚举子目录1、都是这个问题!!大家在使用时要格外小心!!
在调用命令的时候 传递的目录地址后面都不要加“\”!!!!!!
或者自己挨个修改完善下模块源码!!!
-
10101010.png
(45.77 KB, 下载次数: 0)
-
8888888888888888888888.png
(44.49 KB, 下载次数: 0)
-
99999999999999999999999999999999999.png
(8.8 KB, 下载次数: 0)
作者: 凌哥 时间: 2017-2-13 23:26





作者: 林中道士 时间: 2017-2-13 23:28
写的很清楚,清空,难道还给你全部留下

作者: zhifu3158 时间: 2017-2-13 23:30
可 关键是 他没有清空我指定的目录内的文件 反而是吧源码目录里的都清空了 运行目录都清空了 我指定的目录没有动。。。。。
作者: Mr.Yang 时间: 2017-2-13 23:33
没毛病..目录清空 当然全部删除.有些文件没删除的原因是正在被调用.
你删指定文件那就直接删那个文件就好了 为什么还要用目录清空
作者: zhifu3158 时间: 2017-2-13 23:38
也就是说 直接吧运行目录给清空了 取运行目录 () + “\data22\” 等同于 取运行目录 () 。。。。我指定的 + \data22\ 不管用,,,,,,???
作者: Mr.Yang 时间: 2017-2-13 23:39
精易模块是开源模块.你去看看就知道了
作者: zhifu3158 时间: 2017-2-13 23:41
对 也是啊 我去看看
谢谢
作者: 猥琐小胖子 时间: 2017-2-13 23:44
太多人没看清楚楼主问题了,楼主是指定清空的目录,却没清空,而被清空的是上一级目录下的非文件夹文件。
测试了下,这个BUG很奇怪,重现也是偶尔。
暂时解决就是路径后面不加\。(但这个子程序里面本身有判断是否有\,太奇怪了。)
作者: zhifu3158 时间: 2017-2-13 23:50
对 大哥 您看的最清楚,不过我已经修复了 。。。。感谢您的支持。
作者: 商机 时间: 2017-2-14 00:03






作者: graywolf 时间: 2017-2-14 00:09
子程序里面本身确实有判断 如果 目录后加了\ 局_目录 这个变量 就会是个空值 所以会出错
作者: 猥琐小胖子 时间: 2017-2-14 00:12
刚才看的源码是5.5。 模块测试有BUG的是 版本:5.51
不清楚源码是不是对应这个版本 = =
并没有你说的局部变量。怪不得说怎么奇怪。
作者: 代码编译人生 时间: 2017-2-14 00:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: zhifu3158 时间: 2017-2-14 00:13
对 就会认为是要清空软件的运行目录,这个问题很好修复,我已修复了。。
作者: zhifu3158 时间: 2017-2-14 00:16
你这个 就没有问题 ,我使用的是 5.6 的 怪不得 以前没有问题 后来使用新的模块后就出现问题了,害得我专门换了块新的硬盘,但是问题还在,,最后发现 5.6版本的 里面 是 局_目录 将要删除文件的目录 赋值给了 局_目录 所以出问题,像你截图的这个就没有问题。。。
作者: graywolf 时间: 2017-2-14 00:16


- .版本 2
- .子程序 目录_清空, , 公开, 删除指定目录下所有文件,子目录或子目录下的文件不会被删除;
- .参数 要删除文件的目录, 文本型, , 如:删除D:\Program Files(也就是Program Files)目录下的全部文件;,目录不以\结尾会自动添加
- .参数 文件类型, 文本型, 可空, 默认为清空所有文件;或者清空指定格式(*.txt或*.exe)等等;
- .局部变量 SFO, 对象
- .局部变量 局_目录, 文本型
- CoInitialize (0)
- .如果真 (SFO.创建 (“scripting.FileSystemObject”, ))
- .如果真 (取文本右边 (要删除文件的目录, 1) ≠ “\”)
- 局_目录 = 要删除文件的目录 + “\”
- .如果真结束
- .如果 (文件类型 = “”)
- SFO.方法 (“DeleteFile”, 局_目录 + “*.*”, 1)
- .否则
- SFO.方法 (“DeleteFile”, 局_目录 + 文件类型, 1)
- .如果结束
- CoUninitialize ()
复制代码
5.6 是这样的
作者: zhifu3158 时间: 2017-2-14 00:23
目录_清空、目录_强力清空、目录_删除 都是这个问题!!
大家在使用时要格外小心!!
在调用命令的时候 传递的目录地址后面都不要加“\”!!!!!!
或者自己挨个修改完善下模块源码!!!
作者: zhifu3158 时间: 2017-2-14 00:24
5.6 版中 目录_清空、目录_强力清空、目录_删除 都是这个问题!!
大家在使用时要格外小心!!
在调用命令的时候 传递的目录地址后面都不要加“\”!!!!!!
或者自己挨个修改完善下模块源码!!!
作者: 猥琐小胖子 时间: 2017-2-14 00:26
特别下了看下,这个子程序是在5.5版本是正常的,从5.51更新,一直到现在5.6用的都是。
但问题是。子程序更新修改过了,怎么版本的日志却没有。这不严谨啊。
日志无提到有改动。(5.5到5.51其实是有变动)
作者: 10371178 时间: 2017-2-14 00:31
本帖最后由 10371178 于 2017-2-14 00:34 编辑
- .子程序 目录_清空
- .参数 目录名称, 文本型
- 删除目录 (目录名称)
- 创建目录 (目录名称)
复制代码
这样不就行了? 干嘛要用模块,而且很多服务器会禁用FileSystemObject
作者: 猥琐小胖子 时间: 2017-2-14 00:33
不是小心问题。= =!
正常模块有改动(新增,删除,功能的修改等等),版本更新日志肯定不能漏。
否则用户也随着更新调用新模块,刚好遇到没注明到日志的,出现BUG就蛋疼了。
你这个还好,是文件删除马上可以注意到。
@果子
作者: zhifu3158 时间: 2017-2-14 00:33
对啊 。。。哈哈哈。。。但是这样就把指定目录下的子目录 和子目录里的文件都删除了!!!和模块的命令原意是不一样的!!
作者: zhifu3158 时间: 2017-2-14 00:35
【特别注意下】:目录_清空、目录_强力清空、目录_删除 、目录_枚举子目录、目录_同步更新、目录_更新、目录_是否有子目录、目录_枚举子目录1 都是这个问题。。。
作者: zhifu3158 时间: 2017-2-14 00:35
【特别注意下】:目录_清空、目录_强力清空、目录_删除 、目录_枚举子目录、目录_同步更新、目录_更新、目录_是否有子目录、目录_枚举子目录1 都是这个问题。。。
作者: zhifu3158 时间: 2017-2-14 00:39
恩 还好,,顺便把我写了三天的四个源码都给删了。。只得重写了!!
作者: 10371178 时间: 2017-2-14 00:41
- .版本 2
- 目录_清空 (取运行目录 () + “\1\*.jpg”)
- .子程序 目录_清空
- .参数 目录名称, 文本型
- .局部变量 文件名, 文本型
- 文件名 = 寻找文件 (目录名称, )
- .判断循环首 (文件名 ≠ “”)
- 删除文件 (文件名)
- 文件名 = 寻找文件 (, )
- .判断循环尾 ()
复制代码
自己写个 几分钟的事
作者: zhifu3158 时间: 2017-2-14 00:44
对对 差不多这样的 看来以后还是尽可能的自己写 太懒了也是不行的!!
作者: 10371178 时间: 2017-2-14 00:47
被模块坑惨了就会自己动手. 我现在都是自己整理个模块,精易的这个看看源码学习下就好
作者: 御风软件 时间: 2017-2-14 12:39
让你不用我的模块,你以为谁都是我那么负责的么,哈哈
作者: zhifu3158 时间: 2017-2-14 16:02
我错了 。。。以后 我主要就用你的模块。。
作者: 御风软件 时间: 2017-2-14 16:24
之前都和你说了,我的模块可以满足很多场景了,如果没有的,可以从精易模块中扣一些出来。
或者,你有很多自己常用的代码,可以自己再写一个模块,搭配我的那个模块使用。
精易模块功能很多,但是,维护者都不使用的,只有反馈了才修复的,也不审查测试。
我的模块,是我自己使用的,而且,我的每个软件都在使用,而且都是只使用这个模块。
所以,我发现有什么问题,我会马上修复,更新。而目前来说,已经很稳定了。
我的模块,属于个人小众模块,没有历史包袱,也不会因兼容旧版而对好的改变不接受。
所以,模块的命令,在友好度上面,灵活性上面,比较好,命名就很规范。都是不断实践得来的
作者: 御风软件 时间: 2017-2-14 16:34
而且还有一点就是,我加的东西,我都要审核,认为值得信赖的,否则不加。
像JSON,XML,这些,的确很常用,也的确想加,但是,我没有找到一个稳定可信赖的
论坛上,的确有很多大神开源的,说效率怎么样牛逼,但是,都是开源出来,不再后续维护的
所以,如果这种功能添加上去了,当作者弃坑了,我却无法维护更新我的模块,那会是个悲剧
那时候,我只能直接删除这些代码,或者说,让用户不要使用,这都是不好的解决方案。
因为我的模块的目标,就是简洁和稳定可信赖,当软件出问题的时候,不会是因为是模块代码导致的
和精易模块不同,我只是想在一定程度上,帮助快速开发,而不是一个模块包揽用户的全部的功能。
你要知道,我2014年之前,我一直都是使用精易模块的,后面才开发自己的模块,放弃臃肿。享受优雅
欢迎光临 精易论坛 (https://125.confly.eu.org/) |
Powered by Discuz! X3.4 |