Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Fortschrittsanzeige kopiervorgang - C#

Empfohlene Antworten

Veröffentlicht

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

File.copy hat keinen derartigen Parameter. Wenn Du eine Fortschrittsanzeige willst, musst Du Dir eine eigene Funktion schreiben.

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:

wie meinst du das mit dem stückeln? das hab ich jetzt noch nicht ganz kapiert.

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.