如何用 IdFTP 取得FTP服务器上文件的大小和创建日期?(100分)

  • 主题发起人 tom12345
  • 开始时间
T

tom12345

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用 IdFTP 取得FTP服务器上文件的大小和创建日期。
 
IdFTP1.DirectoryListing.Items.ModifiedDate
IdFTP1.DirectoryListing.Items.Size
 
示例如下:
....
if not IdFTP1.Connected then
IdFTP1.Connect();
IdFTP1.List;
for i := 0 to IdFTP1.DirectoryListing.Count - 1do
//遍历
if IdFTP1.DirectoryListing.Items.ItemType = ditFile then
if IdFTP1.DirectoryListing.Items.FileName = 'Demo.exe' then
begin
mdate := IdFTP1.DirectoryListing.Items.ModifiedDate;
fsize := IdFTP1.DirectoryListing.Items.Size;
end;
....
 
szhcracker,谢谢你的回答,在编译时出错:
IdFTP1.List;
[Error] Update.pas(274): Not enough actual parameters
如何解决?
 
首先,我是用的D7和Indy10,其次,请确保要 uses IdFTPList, IdAllFTPListParsers, IdFTP 等单元,最后,在 if not IdFTP1.Connected then
IdFTP1.Connect();//连接Ftp
这句后要用下面的代码切换到一个目标目录:
IdFTP1.ChangeDir('Dir/UpdateDir');//注意用 / 号而不是用 / 号
然后再 IdFTP1.List;
这样就可以得到文件夹“UpdateDir”中的所有目录及文件,循环处理即可。
你再试试,前面的代码我省略了切换目录的代码
 
我用的也是D7,但不知是不是Indy10,
uses IdFTPList, IdFTP 没问题,uses IdAllFTPListParsers 出错:
[Fatal Error] Update.pas(9): File not found: 'IdAllFTPListParsers.dcu'
 
你的Indy可能不是10.0的,你去下载一个后更新一下就可以了,最好在更新前先把老的删掉
 
好不容易找了一个可以安装的Indy10,一打开form 就出错,能否在D7本身的 Indy实现?
 
IdFTP1.List(Nil);
 
谢谢大侠们的帮助。
 
顶部