![]() |
Dateigröße ermitteln
Hallo,
schon seit einer ganzen Weile versuche ich verzweifelt, die Größen von Dateien auf einem FTP-Server zu ermitteln. Letztlich funktioniert hat eigentlich:
Delphi-Quellcode:
Das funktioniert aber immer nur einmal. Deshalb stand im Original auch
function getfilesize(Dateiname:String):Integer;
var f:PDWord; begin result := -1; f := ftpOpenfile(FHSession,Pchar(Dateiname), GENERIC_READ, FTP_TRANSFER_TYPE_BINARY, 0); if assigned(f) then try result := ftpGetFileSize(f,nil); finally end;
Delphi-Quellcode:
So kommt es aber bei jeder Ausführung der Funktion dazu, dass mein Programm nicht mehr reagiert. Komischerweise trat das Problem nicht auf, wenn ich einen Haltepunkt vor "InternetClosehandle(f);" gesetzt hatte.
finally
InternetClosehandle(f); end; Weiß jemand, woran das liegt, bzw. wie ich das Problem beseitigen kann? Mir würde auch einfach eine eigene funktionierende Funktion helfen. Vielen Dank im Voraus! Treuergebenst, Samufi |
AW: Dateigröße ermitteln
Schau dir das mal an:
![]() Dort siehst du wie man "TIdFtpListItems" verwendet. Ich glaube das liefert auch als Information "Size" zurück... Schau dich da mal um. Ansonsten eine sehr unschöne Variante: Globalen TFileStream erzeugen, FTP-Download in den Stream beginnen, im Ersten "OnWork" oder "OnBegin" die größe es Streams (Nimmt ja die Dateigröße an) auslesen und die Verbindung schließen... Hoffe das konnte dir helfen (Und bitte nicht hauen für diese letzte WIRKLICH SCHLECHTE Variante) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02: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