![]() |
Dateigröße einer auf einem Server liegenden Datei ermitteln
Hi!
Siehe Topic! Wie kann man das am besten realisieren :?: Danke ;) |
Re: Dateigröße einer auf einem Server liegenden Datei ermitt
Hi Wheelie,
such mal nach dem Begriff "FileSize" in der Hilfe Deines Delphi. Steffen |
Re: Dateigröße einer auf einem Server liegenden Datei ermitt
Hallo Steffen,
danke für deine Antwort. In der Hilfe bin ich allerdings auf folgendes gestoßen: In Delphi können Sie mit FileSize die Größe der angegebenen Datei (F) ermitteln. Die Größe wird als die Anzahl der Datensätze in einer Datensatzdatei ausgedrückt. Ich habe auch irgendwo hier in der DP gelesen, dass FileSize nur auf lokale Dateien anwendbar ist. Mein eigentliches Problem: Ich möchte eine Datei von einem Server mit Statusanzeige runterladen. Habe natürlich auch gleich an die IdHTTP-Komponente von Indy gedacht, allerdings ist die Datei auf dem Server passwortgeschützt und IdHTTP meldet bei Get('') immer einen Login-Fehler und teilt mir mit, dass ich nicht berechtigt bin, diese Datei runterzuladen. Pfad der Datei: ![]() Wie kann ich diese Datei mittels der IdHTTP-Komponente herunterladen? |
Re: Dateigröße von Datei auf Server ermitteln
kommt schon, einer weiß es doch bestimmt. hab nicht den blassesten schimmer wie ich die dateigröße ermitteln kann. bezüglich dem login-fehler in meinem vorherigen beitrag habe ich (auch hier in der dp) gelesen, dass der server die basic authentification nicht unterstützt.
die folgende funktion benutze ich, um eine datei herunterzuladen:
Delphi-Quellcode:
in der gekennzeichneten schleife möchte ich den aktuellen fortschritt berechnen und dazu benötige ich eben die dateigröße der datei auf dem server.
function GetFileFromInet(const fileURL, AFileNameToSave: String): Boolean;
Const BufferSize = 1024; Var sAppName: String; hSession, hURL: hInternet; buffer: Array[1..BufferSize] Of Byte; bufferLen: DWord; mem: TMemoryStream; Begin Result := False; sAppName := ExtractFileName(Application.ExeName); hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, Nil, Nil, 0); If ( hSession <> Nil ) Then Begin Try hURL := InternetOpenURL(hSession, PChar(fileURL), Nil, 0, INTERNET_FLAG_RELOAD, 0); If ( hURL <> Nil ) Then Begin Try mem := TMemoryStream.Create; Repeat // siehe unten BufferLen := 0; InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen); mem.Write(buffer, bufferlen); Until bufferLen = 0; mem.SaveToFile(AFileNameToSave); mem.Free; Result := True; Finally InternetCloseHandle(hURL); End; End; Finally InternetCloseHandle(hSession); End; End; End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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