Wie schreibt man super-schnelle Datei-streaming von code in C#?

Habe ich auf split eine große Datei in viele kleinere Dateien. Jeder der Ziel-Dateien ist definiert durch eine offset-und length die Anzahl der bytes. Ich bin mit dem folgenden code:

private void copy(string srcFile, string dstFile, int offset, int length)
{
    BinaryReader reader = new BinaryReader(File.OpenRead(srcFile));
    reader.BaseStream.Seek(offset, SeekOrigin.Begin);
    byte[] buffer = reader.ReadBytes(length);

    BinaryWriter writer = new BinaryWriter(File.OpenWrite(dstFile));
    writer.Write(buffer);
}

Bedenkt, dass ich zu rufen Sie diese Funktion über 100.000 mal, es ist bemerkenswert langsam.

  1. Gibt es eine Möglichkeit, um die Autorin direkt an die Leser? (Das heißt, ohne tatsächlich das laden der Inhalte in den Puffer im Arbeitsspeicher.)

InformationsquelleAutor der Frage ala | 2009-06-05

Schreibe einen Kommentar