MES_K Geschrieben 16. Februar 2006 Geschrieben 16. Februar 2006 guten morgen... Ich hab einen Kopiervorgang, der länger dauert ( ca. 300 MB auf USB ). Daher habe ich mir vorgestellt, einen progress zu machen. leider weis ich nicht wie ich das am dümmsten anstellen soll. Eine überlegung von mir war vielleicht ob die File.copy funktion einen parameter hat, um eine progressbar zu steuern, aber ich habe nichts in diese richtung gefunden. Wäre nett, wenn mir jemand weiterhelfen könnte. Danke, MES Zitieren
Bubble Geschrieben 16. Februar 2006 Geschrieben 16. Februar 2006 File.copy hat keinen derartigen Parameter. Wenn Du eine Fortschrittsanzeige willst, musst Du Dir eine eigene Funktion schreiben. Zitieren
Trux Geschrieben 16. Februar 2006 Geschrieben 16. Februar 2006 Am einfachsten ist es das du die größe des file's einliest und dann in Byte-Packete stückelst und dann Packet für Packet schreibst. Dann kannst du auch auf einfache weise eine Status-Bar mitlaufen lassen 300 MB aufeinmal einlesen in das IO.File-Object sollte wohl recht speicher-lastig sein oder seh ich das falsch :confused: Zitieren
MES_K Geschrieben 17. Februar 2006 Autor Geschrieben 17. Februar 2006 wie meinst du das mit dem stückeln? das hab ich jetzt noch nicht ganz kapiert. Zitieren
Trux Geschrieben 17. Februar 2006 Geschrieben 17. Februar 2006 Angenommen du willst 10 MB einlesen / kopieren, dann kannst du das in 10 Packete á 1 MB Teilen, und dann auch so einlesen. 1024 * 1024 byte also 1048576 Byte. Machst du ein byte Array von der größe als buffer, und ließt die ein. FileInfo file = new FileInfo(@"C:\datei"); FileStream stream = File.Open(@"C:\datei",FileMode.Open); byte[] byBuff = new byte[1024 * 1024]; int nCounter = 0; while(stream.Read(byBuff,nCounter,byBuff.Length) { /* * Mach damit was du willst * * */ nCounter += byBuff.Length; } Irgendwie so denke ich Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.