下好的用友文件怎么是0字节,多半是这几个原因
下好的用友文件怎么是0字节,多半是这几个原因
用友软件在企业里用了好多年,从T3到T6再到U8,我经手过的安装包不下几十个。最让人上火的事,不是软件本身难装,而是你辛辛苦苦花半小时下下来的压缩包,解压一看里面全是0字节的文件。双击安装程序,系统提示“文件已损坏”,那种感觉就像买了个西瓜回家切开发现是白的。
后来我慢慢摸清了这里面的门道。所谓0字节,说白了就是文件数据没有真正写到硬盘上,只留下了一个“空壳”。这事在用友下载站上特别常见,尤其是那些几百兆甚至上G的安装包。下面我把这几年踩过的坑一个个摆出来,你看你中了哪个。
下载工具抢跑,文件没写完就断掉
很多朋友习惯用迅雷、IDM这类下载工具去拉用友安装包,觉得速度快、能断点续传。但问题恰恰出在这个“续传”上。用友官网或者是某些下载站给的链接,有时候是临时跳转地址,有效期就几分钟。你下载工具先请求到了地址,然后开始下,下到一半地址失效了,下载工具就傻在那儿,最后生成一个文件头还在、内容全空的假文件。
我遇到过最典型的一次,文件显示下载完成,大小也对得上,但打开解压提示“不可预料的压缩文件末端”。用WinRAR测试了一下,解压出来的几个关键DLL文件全是0字节。后来我查了下载记录的原始链接,发现当时服务器返回的是302跳转,真正的文件在另一个域名上,但下载工具记录的是跳转前的地址。
所以我现在下用友这类大软件,基本不用第三方工具,直接点本页下载按钮,用浏览器自带的下载功能。浏览器下载是直连,服务器给你多少就写多少,不会出现那种“隔空下载”的怪事。你要是非用下载工具不可,记得下载完先右键看属性,文件大小后面有没有“占用空间”这一栏,如果占用空间比文件大小小很多,多半就有问题。
浏览器拦截了文件后缀,生成假文件
这事我估计很多人没意识到。用友的安装包经常是exe或者zip,但某些下载站会把文件放在一个不带后缀的路径下,或者用asp、php这类动态脚本去输出文件流。浏览器一看,这个“文件”类型不对,后缀也没有,干脆给你存成“.htm”或者干脆不带后缀。
你说这不影响大小吧?但有些浏览器抽风,特别是老版本的IE或者某些国产浏览器兼容模式,下载过程中检测到“内容类型”变了,就会强行终止写入,只留下一个空壳。我帮客户远程处理过一台电脑,下载的用友T3安装包显示有1.2G,但双击没反应,一看属性,类型是“HTML文档”,里面全是网页源码。
解决办法很简单,下载的时候留意一下浏览器的下载栏,看文件名结尾是不是正常。要是看到“unfolding.exe.jet”这种带尾巴的,或者干脆没有后缀,手动把后缀改成.exe或者.zip再试试。另外,下载前把浏览器自带的下载拦截关闭,有些安全软件也会把下载中的临时文件隔离掉,只留一个占位符。
杀毒软件把数据流给“嚼”了
这个坑比较隐蔽,尤其在你用360、腾讯管家这类全家桶的时候。我用友U8遇到过好几次,下载完成提示成功,文件大小也对,但打开就是0字节。后来我反复试验发现,是杀毒软件的“下载保护”功能在作怪。
它们扫描下载文件的时候,如果发现里面某些dll或ocx控件带有“注册机”“破解”这类特征码,就会在后台把文件内容清空,但保留文件名和大小信息——这样你的下载记录看着是完整的,实际上数据早被嚼碎了。用友正版安装包按理说不会触发这个,但很多下载站把原版和补丁、注册机打包在一起,杀毒软件一锅端全给处理了。
我现在的做法是,下载用友之前先把杀毒软件的“文件系统实时防护”和“下载保护”临时关掉10分钟,下完安装好再打开。你别怕中毒,用友官方的东西没那么多花活,你要是从非官方下载站下的,那关不关都可能中招,另说。要是已经下了个0字节文件,先把杀毒软件退出,重新点本页下载按钮覆盖一遍,多半能救回来。
硬盘满了或写入权限不够,系统“假完成”
这个我自己也犯过。有一次给一台老服务器装用友T+,下载到一半提示磁盘空间不足,我清理了一下C盘,腾出两个G,然后继续下载。系统显示下载完成,结果一解压,好几个关键文件都是0字节。我后来才想明白,当时下载软件已经把文件映射到内存里了,清理完空间后继续写,但之前那部分没写进去的数据被标记为“已分配但未写入”,文件系统就给你留了个空洞。
还有一个更常见的,就是你把下载目录设在C盘Program Files文件夹下,或者Windows目录里,普通用户权限根本写不进那些受保护的位置。下载工具在那儿建了个空文件,权限不够写不了数据,但下载进度条照样走完,最后给你个0字节“成品”。
遇到这种情况,先去我的电脑看下C盘剩余空间,至少保留安装包体积的1.5倍。然后把下载目录改到D盘或者E盘根目录下新建的文件夹,路径里别有中文和空格,这俩字符在老旧服务器系统里经常引发诡异问题。改完目录后重新下载,十有八九就好了。
下载站本身传的就是残缺文件,你怎么下都没用
这个事我不太爱讲,但确实存在。有些下载站为了蹭流量,把别人传上去的用友安装包“加工”了一下,去掉了几个不必要的文件,重新打包成自解压exe。结果打包的人技术不行,或者用的工具本身有bug,生成的文件就是坏的——里面文件列表是完整的,但实际数据块缺失。
你从这种站点下载,用迅雷、浏览器、FTP都一样,下下来就是0字节的那些文件。我检测过一个号称“用友T3标准版”的包,里面数据库初始化工具这个文件,解压出来大小是0,但用友安装程序恰恰需要这个工具来建账套。这不是你下载方式的问题,是那个站发出来的源头就坏掉了。
怎么判断?下之前先看下载页提供的文件大小和校验值。用友官方一般会给MD5码,下载站如果只写“大小1228M”但没给校验,那就要小心。你下载完后右键文件属性,看数字签名是否为“UFIDA Software”之类的官方标识,如果“签名人”那一栏是空的或者显示“无法验证”,那多半就是被改过的版本。遇到这种,别犹豫,换个站点重新点本页下载按钮,别在一个树上吊死。
下载完成了但解压报错,先别急着删文件
有一次我下了一个好大的用友U8安装包,解压到一半报错“数据错误,文件已被破坏”,我看了一眼那个报错的文件,大小是0。当时气得差点把整个压缩包删了重下。后来有个老前辈跟我说,你先试试用WinRAR的“修复压缩文件”功能,很多时候能救回来。
WinRAR的修复逻辑很有意思,它会尝试跳过损坏的数据块,把完好的那部分文件摘出来。用友安装包虽然很大,但实际真正必需的文件就那几个核心程序,数据源和示例账套坏了影响不大。我试过一次,修复了大概五分钟,解压出来后除了一个示例数据库文件是0字节,其他全都能正常安装。
修复的具体操作:右键压缩包,选“打开方式”里的WinRAR,然后在软件界面里点“工具”菜单下的“修复压缩文件”,格式选“把损坏的文件另存为”,修复完成后去那个文件夹里找新生成的“rebuilt.xxx.rar”,再解压一次。这个方法对80%的下载损坏都有效,能省下重新下载的几个小时。
要是修复完还是0字节,那基本就是源头文件坏了,老实重新下吧。下的时候别同时开好几个下载任务,网络不稳定最容易出这事。用友安装包动不动就一个多G,下载中途断个几秒,数据就可能对不上。你这会儿省的事,安装时全得还回来。