Autor Beitrag
Flash106
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 234


D7 Ent
BeitragVerfasst: Mo 26.03.07 12:50 
Hallo,

ich versuche gerade eine Datei zu überschreiben, aber es ist äußerst ineffizient:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
            FileInfo myFiles = new FileInfo(file);
            FileStream myStream = myFiles.OpenWrite();

            byte[] writeArray = { 0x55 };
            for (int i = 1; i <= myFiles.Length; i++)
            {
                myStream.Write(writeArray, 01);
                myStream.Position = i;
            }


Kann man das nicht irgendwie optimieren? Brauche jetz für eine 2 Mb datei elend lange :(
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 26.03.07 17:18 
Hallo!

Zuerst einmal brauchst Du nicht jedes Mal die Position im Stream setzen. DIe Write-Methode schiebt die Position bereits weiter, sodass man das doppelt macht.

Zum anderen dürfte es sinnvoll sein, jeweils größere Mengen an Daten zu schreiben und nicht immer nur einzelne Bytes. Die Write-Methode nimmt ja nicht umsonst ein Array als Parameter ;-) Fürs Schreiben einzelnener Bytes gibt es übrigens die WriteByte-Methode.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Flash106 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 234


D7 Ent
BeitragVerfasst: Mi 28.03.07 09:41 
Vielen Dank. Habs so ausgebaut das er jetzt immer knapp 1MB schreibt klappt super. Danke :)