以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- Encryptfile执行过程程序退出问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=190563) |
-- 作者:tsailong -- 发布时间:2024/2/22 17:59:00 -- Encryptfile执行过程程序退出问题 做了个批量文件加密程序,可以处理大量文件 但出现了如题所述问题,遇上处理某些文件会令foxtable程序自动退出,且没有任何提示信息,经过设置运行日志定位,确定就是执行Encryptfile语句这行代码出了问题。 想问一下,这条语句出问题的原因在哪里?经过多种测试证明文件本身是没有问题的,问题肯定是出在路径上,那么,是路径字符过长?还是目录层次过多?还是目录中哪些字符不能有?(我测试的路径中有括号和引号,但这两个好像都不是问题发生原因) 请问问题到底出在哪里? 遇到这类情况有办法先忽略它继续处理其他文件吗? 求教,谢谢!
|
-- 作者:chen37280600 -- 发布时间:2024/2/22 19:17:00 -- 是不是大文件加密,狐表是32位app,内存只能用1g,内存用完被崩了? |
-- 作者:tsailong -- 发布时间:2024/2/22 21:15:00 -- 不是,测试文件只有176k |
-- 作者:有点蓝 -- 发布时间:2024/2/22 21:19:00 -- 每次都是这个文件出错? 不是指一个文件,比如一次性处理了300个文件,每处理一个文件都会增加一点内存使用,不断增长,处理的过程中监控一下cpu,内存的使用率。
|
-- 作者:tsailong -- 发布时间:2024/2/22 22:25:00 -- 不止这一个文件出现这个问题。有时候选一个文件夹下面有成百上千甚至几万个文件,出问题的文件虽然随机,但统计出来的几个问题文件路径是相对固定的,也就是说执行问题目录下的这个文件肯定会出现闪退。 感觉跟内存使用没关系,我加了判断,已经处理过的文件直接跳过,所以如果直接选择这个文件夹运行程序,几秒钟就闪退了。 应该跟路径文本有关系,但里面除了点号(.)斜杠\括号()-_这些字符,也没发现其他特殊字符,而且这些字符也是Windows系统文件夹允许使用的符号,要是非法也不会存在相应的文件夹啊。
|
-- 作者:有点蓝 -- 发布时间:2024/2/22 22:36:00 -- 可能路径太长,Windows可以创建很深的目录,但是很多程序都处理不了。碰到路径太长的Foxtable有时确实处理不了。 把这个有问题的路径的目录复制到某个盘的根目录下测试有没有问题?
|
-- 作者:tsailong -- 发布时间:2024/2/23 13:47:00 -- 拷贝到根目录可正常执行 还试了保持文件现路径,把它整个放到一个有十几层深的目录下面去,路径最长时达到230多个字符,这种情况一样会出问题,但我尝试将文件上层目录名缩短,减掉几个字后居然又可以正常执行。所以这个问题确实费解,根本原因到底是啥呢? 蓝老师可有规避之法?遇到了可以自动跳过,继续处理其他文件,否则处理大量文件时就不知道程序会什么时候闪退了
|
-- 作者:有点蓝 -- 发布时间:2024/2/23 13:53:00 -- 没有办法规避,只能不要使用太长的路径 |
-- 作者:有点蓝 -- 发布时间:2024/2/23 13:54:00 -- 如果文件都不大,可以考虑把深层的目录和文件复制到某盘的根目录里处理,处理完毕再删除掉复制的文件 [此贴子已经被作者于2024/2/23 13:54:27编辑过]
|
-- 作者:tsailong -- 发布时间:2024/2/25 20:33:00 -- 回复:(有点蓝)如果文件都不大,可以考虑把深层的目... 我精减了一下传上来,麻烦蓝老师随便选个文件超多目录超复杂的文件夹试试看,看有没有办法解决下问题! |