Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Dateidatum mit IDFTP ausgeben? (https://www.delphipraxis.net/41783-dateidatum-mit-idftp-ausgeben.html)

jeppes 8. Mär 2005 15:28


Dateidatum mit IDFTP ausgeben?
 
Ich möchte das Datum einer Datei per IDFTP (Indies 10) anzeigen, kriege aber immer diese Fehlermeldung:

"Im Projekt ist eine Exception der Klasse EListError aufgetreten. Meldung: 'Listenindex überschreitet das Maximum (0)'. ..."

Was stimmt nicht?

Code:
procedure TForm1.Button29Click(Sender: TObject);
Var
  LS: TStringList;
  datum1: TDateTime;
begin
  LS := TStringList.Create;
  try
     IdFTP1.username := username1;
     IdFTP1.Password := password1;
     IdFTP1.Host := hostname1;
     IdFTP1.Connect;
     if IdFTP1.Connected then
     begin
        IdFTP1.ChangeDir('/abc');
        IdFTP1.List(LS,'index.htm', True);
        datum1 := idFTP1.DirectoryListing.Items[0].ModifiedDate;  <<< Fehler
        ShowMessage(DateTimeToStr(datum1));
        IdFTP1.Quit;
     end;
  except
     ShowMessage('Leider fehlgeschlagen.');
  end;
end;
Ich habe mir dann mal die fraglichen Werte mit showmessage im Einzelnen so ausgeben lassen:

Code:
IdFTP1.List(LS,'index.htm', True);
        ShowMessage('LS.strings[0]: ' + LS.Strings[0]);
            >>>Ausgabe: '9660 Feb 10 13:03 index.htm'
        showmessage('IdFTP1.DirectoryListing.count: '+ IntToStr(IdFTP1.DirectoryListing.count));
            >>>Ausgabe: '0'
datum1 := IdFTP1.DirectoryListing.Items[0].ModifiedDate;
        ShowMessage('Datum: ' + DateTimeToStr(datum1));
            >>>Ausgabe: 'Im Projekt ist eine Exception der Klasse EListError aufgetreten. Meldung: "Listenindex überschreitet das Maximum (0)". ...'
Wie kann es nun aber sein, dass zwar LS.strings[0] einen String liefert, IdFTP1.DirectoryListing.Items[0] aber anscheinend leer ist?

Wer weiß Rat?

Jeppes

Prosac 12. Mär 2005 11:15

Re: Dateidatum mit IDFTP ausgeben?
 
Hi,
ich habe genau das selbe Problem, bin schon total verzweifelt.

Ich hatte mit Delphi 7 und Indy 9 ein kleines FTP-Programm geschrieben. Das funzte auch wunderbar mit dem DirectoryListing. Jetzt habe ich Delphi 2005 mit Indy 10 und das Programm funzt nicht mehr, genau wie bei jeppes. Im DirectoryListing steht nach dem List-Befehl nichts mehr drin!

Bitte helft uns!

Gruß Prosac

Prosac 15. Mär 2005 16:06

Re: Dateidatum mit IDFTP ausgeben?
 
Hat Niemand ne Idee? :(

generic 18. Okt 2006 12:24

Re: Dateidatum mit IDFTP ausgeben?
 
doch ich hab ne idee (ein jahr später ;-))

DirectoryListing ist leer weil du keinen parser für das directory-format hast.
binde mal folgende units mit ein (in der uses klausel):
Code:
IdFTPListParseAS400
IdFTPListParseBase
IdFTPListParseBullGCOS7
IdFTPListParseBullGCOS8
IdFTPListParseCiscoIOS
IdFTPListParseDistinctTCPIP
IdFTPListParseEPLF
IdFTPListParseHellSoft
IdFTPListParseKA9Q
IdFTPListParseMicrowareOS9
IdFTPListParseMPEiX
IdFTPListParseMusic
IdFTPListParseMVS
IdFTPListParseNCSAForDOS
IdFTPListParseNovellNetware
IdFTPListParseNovellNetwarePSU
IdFTPListParseOS2
IdFTPListParseStercomOS390Exp
IdFTPListParseStercomUnixEnt
IdFTPListParseTandemGuardian
IdFTPListParseTOPS20
IdFTPListParseTSXPlus
IdFTPListParseUnix
IdFTPListParseVM
IdFTPListParseVMS
IdFTPListParseVSE
IdFTPListParseVxWorks
IdFTPListParseWfFTP
IdFTPListParseWindowsNT
IdFTPListParseWinQVTNET
IdFTPListParseXecomMicroRTOS
damit registieren sich alle verfügbaren parser.
bei meinem projekten ist meist nur der IdFTPListParseUnix und IdFTPListParseWindowsNT notwendig.

Delphi-Quellcode:
  memo1.Clear;
  idFTP1.List;
  for i:=0 to idFTP1.DirectoryListing.Count-1 do
    with idFTP1.DirectoryListing.Items[i] do
      memo1.lines.add( formatdatetime('dd.mm.yyyy hh:nn:ss', ModifiedDate)+' '+FileName+' '+inttostr(Size) );

welches format du brauchst findest du in IdFTP1.SystemDesc raus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz