2017-01-25 2 views
0

Ich versuche, eine Dateimappe zu codieren.C# Kombinieren Sie zwei Dateien über die Ausgabedatei - Dateiordner

Ich kombinierte das Array von Bytes aus den beiden Dateien in die Ausgabedatei geschrieben werden.

Es scheint, dass ich die beiden Dateien zusammenführe, anstatt sie zu binden, weil ich in der Lage sein möchte, beide Dateien auszuführen, wenn ich die Ausgabedatei ausführe.

Gibt es eine Möglichkeit, die beiden Arrays zu kombinieren, aber während der Laufzeit zu teilen, um beide Dateien ausführen zu können?

oder gibt es eine andere Möglichkeit, die Dateimappe zu codieren?

Code:

private void button3_Click(object sender, EventArgs e) 
    { 
     if(textBox1.Text != null & textBox2.Text !=null) 
     { 
      string filepath1 = this.textBox1.Text; 
      byte[] Bytes1 = File.ReadAllBytes(filepath1); 

      string filepath2 = this.textBox2.Text; 
      byte[] Bytes2 = File.ReadAllBytes(filepath2); 

      byte[] combinedbytes = new byte[Bytes1.Length + Bytes2.Length]; 

      Array.Copy(Bytes1, 0, combinedbytes, 0, Bytes1.Length); 
      Array.Copy(Bytes2, 0, combinedbytes, Bytes1.Length, Bytes2.Length); 

      File.WriteAllBytes(outfile, combinedbytes); 

     } 

Antwort

0

Ja, das ist möglich, aber nicht ohne Zwischendatei oder Zwischenstruktur.

  1. Sie können die Länge beider Byte-Arrays in einer separaten Datei speichern.
File.WriteAllLines(path, new[] { Bytes1.Length, Bytes2.Length }); 

byte[] Bytes1 = new byte[File.ReadLines(path)[0]]; 
byte[] Bytes2 = new byte[File.ReadLines(path)[1]]; 

Dann diese 2-Dateien laden und Array.Copy aus dem zusammengefügte Datei auszuführen. So trennen Sie Arrays

  1. Verwenden Sie eine Textdatei (binär) und erstellen Sie eine Struktur, damit Sie die Länge der zusammengesetzten Arrays und deren Inhalt kennen. JSON sollte für Sie arbeiten.
{ 
    Bytes1: //Your bytes here, 
    Bytes2: //Your second bytes here 
}