Ftp文件大小(150分)

  • 主题发起人 主题发起人 foxnt
  • 开始时间 开始时间
F

foxnt

Unregistered / Unconfirmed
GUEST, unregistred user!
用DELPHI的FTP控件做的程序,现有几个问题:

1 。 如何得到要下载的文件大小。

虽然用LIST和BYTETOTAL的属性都可得到文件大小,但LIST是所有
文件都给出来了,如
DRWX-RWX-RWX 13344 ......
用读字符串的方法很难读出来,因为每个长度,位置都不同。
用BYTETOTAL是在用了DOWNLOAD 或 UPLOAD函数后才能得到大小,
可我现在必须在下载、上传前就要得到大小。因为要在下载前
先判断磁盘大小是不是充足。


2。 如果要下载的远程目录中,还包含了N个目录,名字是随机的。我如何
把这N个目录的文件一起下载?

请高手指点。急,急,急!
 
用Delphi的GetFileSize()之类的过程/函数试试!
 
访问NMFTP的FTPDirectoryList属性:
The FTPDirectoryList property is used only when the ParseList property is set to TRUE.

下面是ONSuccess的例子。
procedure TForm1.NMFTP1Success(Trans_Type: TCmdType);
var
I: Integer;
begin
case Trans_Type of
cmdList:
begin
for I := 0 to (StringGrid1.ColCount - 1) do

StringGrid1.Cols.Clear;
StringGrid1.RowCount := NMFTP1.FTPDirectoryList.name.Count;
StringGrid1.ColCount := 4;
StringGrid1.Cells[0, 0] := 'Filename';
StringGrid1.Cells[1, 0] := 'File Size';
StringGrid1.Cells[2, 0] := 'Modified Date';
StringGrid1.Cells[3, 0] := 'Attributes';
for I := 0 to (NMFTP1.FTPDirectoryList.name.Count - 1) do
with NMFTP1.FTPDirectoryList do
begin
StringGrid1.Cells[0, I+1] := name;

StringGrid1.Cells[1, I+1] := Size;
StringGrid1.Cells[2, I+1] := ModifDate;
StringGrid1.Cells[3, I+1] := Attribute;
end;
end;
end;
end;
 
>>虽然用LIST和BYTETOTAL的属性都可得到文件大小,但LIST是所有
>> 文件都给出来了,如
>> DRWX-RWX-RWX 13344 ......
>> 用读字符串的方法很难读出来,因为每个长度,位置都不同。
你可以用空格作分隔符,判断长度是第几个位置就行了。我就是这么做的。
 
呵呵,如果有网络蚂蚁的原码,
看看你就知道了。
查一查VC的帮助把,可能对你会有帮助的
 
多人接受答案了。
 
后退
顶部