注册登陆后可查看附件和大图,以及购买相关内容
您需要 登录 才可以下载或查看,没有账号?注册会员
x
VBAI保存脚本时路径和名称过长时崩溃 VBAI保存脚本时路径和名称过长时崩溃视频号
VBAI保存脚本时路径和名称过长时崩溃B站 在使用VBAI软件时,保存脚本时,也会遇到这个问题。如果是因为文件夹层数太多导致长度超过长度限制,那么在保存脚本时,则VBAI直接崩溃,这种情况需要注意,因为崩溃后脚本就没有了,数据会丢失,无法恢复;而如果文件夹很短,如直接在盘符下,而直接输入超长的文件名,那么是可以提示非法文件名的。但是这时就算删除一些字符后,文件名长度符合要求了,可以保存时点击Save保存时,仍然有崩溃风险,因为这里的文件名长度计算并没有考虑扩展名。 这里先来验证一下Windows系统的文件名或文件夹到底可以多少字符。 A~Za~z*5共260个字符 这里直接简单使用A~Za~z这样的大小写字符重复5次得到260个字符,然后复制这些字符先来创建一个文件夹看看: 文件夹名称 直接在D盘下创建一个文件夹,然后命名。可以看到5组大小写字符的最后小写字符只有a~j,其他的则被删除了,这时的字符总长是244: 文件夹名称总长244 算上盘符D:\3个字符 也就是最大路径长度是260,还要留下DOS保留的8.3文件名,最长只能是260-12=248个字符。所以上面创建的文件夹目录则是244+3+1=248个字符。 这时的文件夹长度总共有248个字符了。那么保存的VBAI脚本,则最长只能使用12个字符,.vbai扩展名去掉5个字符,这时最多只能7个字符的脚本文件名。我们来验证一下: 仅输入7个长度的文件名保存到限长的文件夹中 可以正常保存 另存为8个长度的文件名 8个的文件名仍然可以保存 8个的文件名仍然可以保存,这时理论上应该是244+3+8+5+1=261个字符了,为什么还可以保存呢?这个系统只是WIN7。应该有限制的吧?那么再加长一些看看呢? 15个字符的文件名仍然可以保存 难道这里的文件夹和文件名是分开的判断的? 260个字符的文件名 直接使用260个字符的文件名时,直接提示路径过长,提示使用短名称。而且看字符最后的名称,已经被删除了一个字符,并没有z,这里应该是删除了一个结束符吧。最多只能输入259个字符。如果那按照259,再减去.vbai扩展名的5个字符,则应该最多只有254个字符。那先使用254个字符看看: 254个字符仍然过长 然后如果保留8.3的默认短名称,则只有242个字符。那么看看242的字符是如何处理的。先看一下243个字符时: 243个字符仍然越长(这里加上结束符应该是244个?) 使用242个字符时 点击Save后不再弹出超长,但是VBAI直接崩溃了 文件名只保留242个字符时,则可以保存了,但是保存后直接崩溃,无法保存到系统中的文件夹中。 这里的VBAI应该只判断了输入的文件名长度,限制必须小于等于242个字符。但是并没有考虑文件夹的驱动器等符号。那么直接将其保存到驱动器根目录下呢? 242个字符直接保存到C:\下 242个字符长的文件名直接在C:\下可以保存 这时的路径是“C:\ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh.vbai”,总长是251个字符: 路径长度251个字符 251个字符,加上一个结束符,有252个字符。 将其保存到非根目录 而这个242个字符长度的文件保存到非根目录时也可以保存,这时路径总长已经达到了252+4=256,还可以保存: 路径总长256时可以保存 而将其保存到路径总长257的文件夹12345下时则崩溃 保存到12345文件夹下时崩溃 所以,这里的路径总长只能是256个字符。 从上面的验证判断,VBAI中会对脚本的文件名长度进行限制,最长不能超过242个字符(260-12-5-1);而Windows系统则会对文件路径进行限制,最长不超过256个字符。如果VBAI的文件名小于242个字符,而路径总长超过256个字符,则VBAI直接崩溃。
|