有人用TIdFtp连过SUN的Solaris8吗?为什么用Size()取得的文件大小是-1?连接HP、SCO UNIX等都是好的。目录绝对没错。比较了一下几个OS的文件列表有点不一样:SUN Solaris 8:
drwxr-x--x 4 sybase staff 512 2004 6月 25 jConnect_docs其他UNIX:
-rw-r----- 1 sybase gsybase 46497 Jun 29 2000 index.ddl如何解决Size()的问题?如何指定IdFtp对SUN的含中文的文件列表正确解析?
drwxr-x--x 4 sybase staff 512 2004 6月 25 jConnect_docs其他UNIX:
-rw-r----- 1 sybase gsybase 46497 Jun 29 2000 index.ddl如何解决Size()的问题?如何指定IdFtp对SUN的含中文的文件列表正确解析?
Size方法是IdFTP.pas的,很容易解决的提供测试地址吧~http://lysoft.7u7.net
不好意思,我是用CB的,对Pascal不太熟,刚看了一下.PAS,Size方法没看懂
function TIdFTP.Size(const AFileName: String): Integer;
var
SizeStr: String;
begin
result := -1;
if SendCmd('SIZE ' + AFileName) = 213 then begin {Do not translate}
SizeStr := Trim(LastCmdResult.Text.Text);
system.delete(SizeStr, 1, IndyPos(' ', SizeStr)); // delete the response {Do not translate}
result := StrToIntDef(SizeStr, -1);
end;
end;
其中SendCmd是干吗的?
然后等待服务器的响应,其响应都是命令行格式的你的代码,最大的问题在于,Size后,服务器返回了什么信息
一般是
size default.htm
213 8665
或
size a.a
550 /a.a no such fileIndy就靠解析213 8665获得Default.htm文件的大小为8665Bytes的http://lysoft.7u7.net
SIZE命令是发给FTP服务器的吗?在命令行窗口输入size提示Invalid Command