首页 > 解决方案 > 在二进制文件的开头添加字节

问题描述

我有一个十六进制字符串,我将其转换为如下字节:

string hexString = @"504b0304140000000000";

File.WriteAllBytes("0.bin", StringToByteArray(hexString));

//        
public static byte[] StringToByteArray(string hex)
{
return Enumerable.Range(0, hex.Length)
.Where(x => x % 2 == 0)
.Select(x => Convert.ToByte(hex.Substring(x, 2), 16))
.ToArray();
 }

现在我需要将“ 0.bin ”或StringToByteArray(hexString)添加到现有二进制文件“ 1.bin ”的开头

我试图将1.bin附加到0.bin但字节被添加到 1.bin 的末尾而不是开头。

    byte[] bytes = StringToByteArray(hexString);

    using (var stream = new FileStream("1.bin", FileMode.Append))
    {
        stream.Write(bytes, 0, bytes.Length);
    }

回顾:我需要按此顺序将 0.bin + 1.bin 的字节组合成一个二进制文件。

标签: c#.netvisual-studio

解决方案


我建议使用临时文件。先写入 0.bin,再写入 1.bin。删除 1.bin 并将您的临时文件重命名为 1.bin。


推荐阅读