![]() |
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:
Ich habe mir dann mal die fraglichen Werte mit showmessage im Einzelnen so ausgeben lassen:
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;
Code:
Wie kann es nun aber sein, dass zwar LS.strings[0] einen String liefert, IdFTP1.DirectoryListing.Items[0] aber anscheinend leer ist?
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)". ...' Wer weiß Rat? Jeppes |
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 |
Re: Dateidatum mit IDFTP ausgeben?
Hat Niemand ne Idee? :(
|
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:
damit registieren sich alle verfügbaren parser.
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 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