![]() |
CopyFile und Progressbar?
Huhu :hi:,
ich kopiere per Knopfdruck mehrere Dateien, aber ich möcht das eine Progressbar den Status jeder Datei anzeigt wie weit diese schon kopiert ist. Mit einer zweiten Progressbar möchte ich den gesammten status anzeigen. Ist die möglich oder ist das schwer zu verwirklichen? |
Re: CopyFile und Progressbar?
Hi,
es sollte nicht allzu schwer sein, schau mal in der der Win32 Developers Reference unter CopyProgressRoutine CopyFileEx Grüsse Woki |
Re: CopyFile und Progressbar?
Oder nimm die API Funktion
![]() |
Re: CopyFile und Progressbar?
Hallo ich nutze für diesen Zweck folgende Procedure.
Delphi-Quellcode:
Vieleicht sollte man hier noch eine Abfrage machen ob die Datei bereits Exisitert oder ob der Freiespeicherplatz des Ziellaufwerks ausreicht oder ob die Zieldatei nicht gerade verwendet wird.
procedure CopyProgress(Source, Destination: string;Progressbar1:Tprogressbar);
var FromF, ToF: file of byte; Buffer: array[0..4096] of char; NumRead: integer; FileLength: longint; var Frei,Gesamt,Benuzt:int64; begin Screen.Cursor:=crHourglass; AssignFile(FromF, Source); reset(FromF); AssignFile(ToF, Destination); rewrite(ToF); FileLength := FileSize(FromF); GetFreeDiskSpace(Extractfiledrive(Destination), Frei,Gesamt,Benuzt); if Filelength > Frei then begin MessageDlg('Nicht genügend freier Speicherplatz auf Laufwerk [ '+Extractfiledrive(Destination)+'\ ]' , mtError,[mbOk], 0); CloseFile(FromF); CloseFile(ToF); Screen.Cursor:=crdefault; Exit; end; try with Progressbar1 do begin Application.ProcessMessages; Min := 0; Max := FileLength; while FileLength > 0 do begin Application.ProcessMessages; BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead); FileLength := FileLength - NumRead; BlockWrite(ToF, Buffer[0], NumRead); Position := Position + NumRead; end; Application.ProcessMessages; CloseFile(FromF); CloseFile(ToF); end; Except; MessageDlg('Der Kopiervorgang konnte nicht Ordnungsgemäß ausgeführt werden !', mtError,[mbOk], 0); end; progressbar1.Position:=0; Screen.Cursor:=crdefault; Gruß Orion300 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 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