Frage

Wie las ich einen rohen Byte-Array aus einem beliebigen Datei, und schreiben Sie zurück, dass die Byte-Array in eine neue Datei?

War es hilfreich?

Lösung

(edit: beachten Sie, dass die Frage geändert, es nicht byte[] erwähnen zunächst, siehe Revision 1 )

Nun, springt File.Copy in den Sinn; aber ansonsten das klingt wie ein Stream Szenario:

    using (Stream source = File.OpenRead(inPath))
    using (Stream dest = File.Create(outPath)) {
        byte[] buffer = new byte[2048]; // pick size
        int bytesRead;
        while((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0) {
            dest.Write(buffer, 0, bytesRead);
        }
    }

Andere Tipps

byte[] data = File.ReadAllBytes(path1);
File.WriteAllBytes(path2, data);

Sie wissen über Textreader und < a href = "http://msdn.microsoft.com/en-us/library/system.io.textwriter.aspx" rel = "nofollow noreferrer"> Textwriter , und ihre Nachkommen Stream und Stream ? Ich denke, diese Ihr Problem lösen, weil sie Kodierungen umgehen, Binary nicht über Codierungen nicht kennt oder sogar Text, es mit Bytes nur geht.

Text aus einer Datei lesen

Wie Text in eine Datei schreiben

Dies ist ein ausgezeichnetes Intro IO und Kodierungen Datei.

eine aktuelle Antwort Hinzufügen

using (var source = File.OpenRead(inPath))
{
    using (var dest = File.Create(outPath))
    {
        source.CopyTo(dest);
    }
}

Sie können optional die Puffergröße angeben

using (var source = File.OpenRead(inPath))
{
    using (var dest = File.Create(outPath))
    {
        source.CopyTo(dest, 2048); // or something bigger.
    }
}

oder Sie können den Vorgang auf einem anderen Thread,

ausführen
using (var source = File.OpenRead(inPath))
{
    using (var dest = File.Create(outPath))
    {
        await source.CopyToAsync(dest);
    }
}

, das nützlich sein würde, wenn der Haupt-Thread andere Arbeit zu tun hat, wie mit WPF und Windows Store-Anwendungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top