C#组合两个文件以通过输出文件 - 文件活页夹运行

时间:2017-01-25 06:34:04

标签: c# arrays file byte

我正在尝试编写文件活页夹。

我将要写入的两个文件中的字节数组合成输出文件。

似乎我正在合并这两个文件而不是绑定它们,因为我希望能够在运行输出文件时运行这两个文件。

有没有办法可以合并两个数组但在运行时拆分它们才能运行这两个文件?

还是有其他方法我可以编写文件夹吗?

代码:

    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);

        }

1 个答案:

答案 0 :(得分:0)

是的,这是可能的,但不是没有中间文件或中间结构。

  1. 您可以存储在单独的文件中,两个字节数组的长度。
  2. File.WriteAllLines(path, new[] { Bytes1.Length, Bytes2.Length });
    
    byte[] Bytes1 = new byte[File.ReadLines(path)[0]];
    byte[] Bytes2 = new byte[File.ReadLines(path)[1]];
    

    然后加载这两个文件并从合并的文件中执行Array.Copy。分离数组

    1. 使用一个文本(可以是二进制)文件并创建结构,这样您就可以知道合并的数组的长度及其内容。 JSON应该适合你。
    2. {
          Bytes1: //Your bytes here,
          Bytes2: //Your second bytes here
      }