【发布时间】:2012-05-07 10:39:53
【问题描述】:
我有两个二进制文件,"bigFile.bin" 和 "smallFile.bin"。"bigFile.bin" 包含 "smallFile.bin"。
以无与伦比的方式打开它证实了这一点。
我想将较小的文件从较大的文件中提取到一个等于"smallFile.bin"的“result.bin”中。
我有两个关键字——一个用于起始位置(“Section”),一个用于结束位置(“Man”);
我尝试了以下方法:
byte[] bigFile = File.ReadAllBytes("bigFile.bin");
UTF8Encoding enc = new UTF8Encoding();
string text = enc.GetString(bigFile);
int startIndex = text.IndexOf("Section");
int endIndex = text.IndexOf("Man");
string smallFile = text.Substring(startIndex, endIndex - startIndex);
File.WriteAllBytes("result.bin",enc.GetBytes(smallFile));
我尝试将结果文件与 Beyond compare 中的原始小文件进行比较,它显示了十六进制表示比较。
没有字节是相等的 - 但有些不是。
例如,在新文件中我有84,但在旧文件中我有EF BF BD 序列。
是什么导致了这些差异?我哪里看错了?
【问题讨论】:
标签: c# file encoding byte type-conversion