如何得到FTP服务器上文件的日期?(100分)

Z

zealots

Unregistered / Unconfirmed
GUEST, unregistred user!
比较服务器文件修改时间和本地文件的修改时间, 从而确定是否下载服务器的文件到本地。

本地文件的修改时间已经取得, 现在问题是怎么取得FTP服务器上的文件的修改时间??
 
fhandle:=fileopen(文件名,0);
try
s:=datetimetostr(filedatetodatetime(filegetdate(fhandle)));
finally
fileclose(fhandle);
 
delphi 有demo
 
TO katy:
这样只能取得有有具体路径下得文件时间,并不是我想要的FTP服务器上文件的日期。
这些文件是只能通过FTP访问的,这样用这种方法是得不到文件时间的。

TO hamsoft:
delphi 的 demo 并没有关于获取FTP服务器文件时间的例子。
 
delphi 有demo
 
如何取得 FTP服务器的文件时间? 有人可以告诉我吗?!!!!!!

急急急急急急啊!!!!!!!!
 
ParseList属性设为true才行。
下面是Delphi自带的帮助中的例子,还不明白的话就看看完整的帮助中的例子。

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;
 
对了,忘了说一句:我不赞成你用NMFTP,有致命的BUG,所以当初我才会用ICS,
不过ICS就不能象NMFTP那样可以分解返回的信息,这是我知道的NMFTP唯一的好处了。
 
TO 教父: 谢谢,
但是为什么 NMFTP1.FTPDirectoryList.name.Count = 0 ??
所以还是得不到文件的修改时间!!!!

如下,在Memo1中可以正确的得到某一目录下的所有文件以及目录名称
VAR
Q:String;
procedure TFrmFTP.Button11Click(Sender: TObject);
begin
Memo1.Lines.Clear;
Q := 1;
try NMFTP1.List; except end;
end;
procedure TFrmFTP.NMFTP1ListItem(Listing: String);
begin
Memo1.Lines.Add(IntToStr(Q)+': '+Listing);
Inc(Q);
end;
 
首先你有没有设置ParseList属性设为true?
其次OnListItem在ParseList属性设为true的时候好象是无效的,你看看上面的代码,再
看看帮助,NMFTP我好久不用了,记不太清楚了。
 
多人接受答案了。
 
顶部