Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Details abfragen mit Indy (https://www.delphipraxis.net/30226-details-abfragen-mit-indy.html)

Nele 22. Sep 2004 10:34


Details abfragen mit Indy
 
Hallo,

ich möchte mittels der Indykomponenten das Datum von einer Datei auf einem Server abfragen und diese gegebenenfalls runteladen. Das Runterladen funktioniert soweit, aber die Datumsabfrage bekomme ich nicht hin.

Delphi-Quellcode:
idFtp1.List(myList,'Text.txt',true)
liefert mir ja die Details zur Datei Text.txt, gibt es eine Möglichkeit nur das Datum der Datei zu bekommen? Oder muß ich die Details "auseinanderpflücken"? :gruebel:

Vielen Dank für Eure Hilfe :)

Gruß
Nele

ReDoX 22. Sep 2004 10:37

Re: Details abfragen mit Indy
 
Hier ist aber nicht von mir:

Delphi-Quellcode:
function GetFileDate(const FileName: string; out Creation, LastAccess,
  LastWrite: TDateTime): Boolean;
var
  hFile: THandle;
  ftCreationUTC, ftLastAccessUTC, ftLastWriteUTC: TFileTime;
  ftCreationLocal, ftLastAccessLocal, ftLastWriteLocal: TFileTime;
  stCreationLocal, stLastAccessLocal, stLastWriteLocal: TSystemTime;
begin
  result:=false;
  hFile := CreateFile(PChar(FileName), GENERIC_READ, 0, nil,
  OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
  if (hFile <> INVALID_HANDLE_VALUE) then begin
    try
      //Ermittlung des Dateidatums in UTC (Weltzeit)
      if GetFileTime(hFile, @ftCreationUTC, @ftLastAccessUTC, @ftLastWriteUTC) then begin
        //Umrechnung in Ortszeit
        if FileTimeToLocalFileTime(ftCreationUTC, ftCreationLocal)
        and FileTimeToLocalFileTime(ftLastAccessUTC, ftLastAccessLocal)
        and FileTimeToLocalFileTime(ftLastWriteUTC, ftLastWriteLocal) then begin
          //Umwandlung in Systemdatumformat
          if FileTimeToSystemTime(ftCreationLocal, stCreationLocal)
          and FileTimeToSystemTime(ftLastAccessLocal, stLastAccessLocal)
          and FileTimeToSystemTime(ftLastWriteLocal, stLastWriteLocal) then begin
            //Zuweisung der Rückgabewerte
            Creation := SystemTimeToDateTime(stCreationLocal);
            LastAccess := SystemTimeToDateTime(stLastAccessLocal);
            LastWrite := SystemTimeToDateTime(stLastWriteLocal);
            result:=true;
          end;
        end;
      end;
    finally
      CloseHandle(hFile);
    end;
  end;
end;







procedure TForm1.Button1Click(Sender: TObject);
var erstellung, zugriff, schreibzugriff: TDateTime;
begin
  GetFileDate('c:\temp\test.bmp', erzeugung, zugriff, schreibzugriff);
  ShowMessage('Erstellung: '+DateTimeToStr(erstellung)+#13#10+'Letzter Zugriff: '+
  DateTimeToStr(zugriff)+#13#10+'Letzter Schreibzugriff: '+DateTimeToStr(schreibzugriff));
end;
Mfg MrScholz

Luckie 22. Sep 2004 10:51

Re: Details abfragen mit Indy
 
Nicht von dir und am Thema vorbei. Mit deinem Code bekommst du nur das datum auf einem lokalen Windows Rechner aber nicht einer datei auf einem FTP Server im Netz. Nicht umsonst steht die Frage in der "Internet / IP / Lan" Sparte. ;)

Nele 22. Sep 2004 10:54

Re: Details abfragen mit Indy
 
Ich hatte eigendlich gedacht, dass es bei den Indy-Komponenten etwas ähnliches wie bei der TNMFTP-Komponente gibt....

Delphi-Quellcode:
     datum:= TNMftp1.FTPDirectoryList.ModifDate[i];
das war so schön einfach :roll:

Gruß
Nele

ReDoX 22. Sep 2004 10:55

Re: Details abfragen mit Indy
 
Zitat:

Mit deinem Code bekommst du nur das datum auf einem lokalen Windows Rechner aber nicht einer datei auf einem FTP Server im Netz
Hi,
man könte das ja umprogrammieren und wenn nicht sry und :oops: oder :wall:.
Mfg MrScholz

lkz633 22. Sep 2004 11:10

Re: Details abfragen mit Indy
 
Hi,

wie wärs mit
Delphi-Quellcode:
IdFTP1.DirectoryListing.Items[x].ModifiedDate
Gruss lkz633

Nele 22. Sep 2004 11:15

Re: Details abfragen mit Indy
 
So etwas suche ich ja...

Delphi-Quellcode:
    IdFTP1.DirectoryListing.Items[0].ModifiedDate;
...aber das kommt dabei raus :shock:

Zitat:

[Fehler] udownload.pas(851): Undefinierter Bezeichner: 'DirectoryListing'
Kann die Eigenschaft 'DirectoryListing' für die Indy-Komponente bei mir nicht finden, gibt es die generell nicht, oder nur bei mir nicht ??? :pale:


Gruß
Nele

Luckie 22. Sep 2004 11:19

Re: Details abfragen mit Indy
 
Setz doch einfach mal den Punkt und warte ab, was dir die Codevervollständigung zur Auswahl anbietet. :roll:

Nele 22. Sep 2004 11:26

Re: Details abfragen mit Indy
 
Wenn mir 'DirectoryListing' angeboten würde, hätte ich wahrscheinlich diese Frage nicht gestellt 8)
[...ganz sicher bin ich mir dessen aber nicht :lol: ]

Wenn ich mir mein Delphi anschaue gibt es 'DirectoryListing' für die Indy-Komponente nicht, aber wer weiß schon, was mein Rechner/Delphi wieder gegen mich hat, dass er/es mir diese Eigenschaft verschweigt :roll:

Gruß
Nele,
die jetzt verzweifelt versucht der Indy-Komponente mehr Eigenschaften zu entlocken

Luckie 22. Sep 2004 11:29

Re: Details abfragen mit Indy
 
Zitat:

Zitat von Nele
Wenn mir 'DirectoryListing' angeboten würde, hätte ich wahrscheinlich diese Frage nicht gestellt 8)

Und genau deswegen sollst du warten, was dir eben angeboten wird, was dem entsprechen könnte. Ganz clevere Jungs würden einfach in der Indy Hilfe oder in den Indy Demos kucken. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 Uhr.
Seite 1 von 2  1 2      

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