今天发现一个服务从某一个外接系统(Linux)FTP取到的文件大小和下载后的文件大小总是不一致。
开始以为是程序那里出错了。但是找来找去发现不了原因。后来用FTP工具上去执行SIZE命令,终于发现返回的结果不正确。
如下,多了几个字节,太无语了。
[右] size 2013年5月非实收核算报表.xls
[右] 213 7025
于是下载一次,再执行一次,正确了。
[右] size 2013年5月非实收核算报表.xls
[右] 213 6994
原因分析:该FTP服务存在问题,可能某些机制的原因,无法正确返回字节数。但是下载后,由于读取了该文件,于是能获取到正确大小.
最终解决办法:下载后再获取ftp文件大小。
1: if (finfo.Length>0&& finfo.Length!= fileSize) //发现不一致,尝试重新获取一次字节
2: fileSize = ftpCommand.GetFileSize(remotePath, remoteFile);//下载后重新获取一次字节大小
问题解决,运行正常。