C# 如何读取二进制文件并将字符串插入listView,将每个字符串插入一行-C

C# 如何读取二进制文件并将字符串插入listView,将每个字符串插入一行-C,c#,C#,我想读取二进制文件并将字符串插入listView,将每个字符串插入一行 我已经做了一个代码,但我不知道为什么代码不起作用 String input = string.Empty; OpenFileDialog openFileDialog3 = new OpenFileDialog(); openFileDialog3.Filter = "bin files (*.bin)|*.bin"; if (openFileDialog3.ShowDialog() == DialogResult.OK)

我想读取二进制文件并将字符串插入listView,将每个字符串插入一行

我已经做了一个代码,但我不知道为什么代码不起作用

String input = string.Empty;
OpenFileDialog openFileDialog3 = new OpenFileDialog();
openFileDialog3.Filter = "bin files (*.bin)|*.bin";
if (openFileDialog3.ShowDialog() == DialogResult.OK)
    if (openFileDialog3.FileName == String.Empty)
        return;

BinaryReader br = new BinaryReader(File.OpenRead(openFileDialog3.FileName), Encoding.Unicode);
br.BaseStream.Position = 0x8;
int Pntrnum = br.ReadInt16();
menuItem11.Visible = true;
menuItem11.Text = Pntrnum.ToString();
List<int> offsets = new List<int>();
br.BaseStream.Position = 0x10;
for (int i = 0; i < Pntrnum; i++)
{
    offsets.Add(br.ReadInt32());
}
Dictionary<int, string> values = new Dictionary<int, string>();
for (int i = 0; i < offsets.Count; i++)
{
    int currentOffset = offsets[i];
    int nextOffset = (i + 1) < offsets.Count ? offsets[i + 1] : (int)br.BaseStream.Length;
    int stringLength = (nextOffset - currentOffset - 1) / 2;
    br.BaseStream.Position = currentOffset;
    var chars = br.ReadChars(stringLength);
    values.Add(currentOffset, new String(chars));
}
foreach (int offset in offsets)
{
    listView1.Items.Add(offset.ToString("X")).SubItems.Add(values[offset]);
}

br.Close();
br = null;

是否有其他代码或错误

定义不工作。当我使用该程序时。。什么事也没有发生。。列表视图仍然是空的!您应该解释二进制文件的第一种自己的格式:0x8-int16偏移量长度,0x10-int32偏移量数组,等等……为什么不尝试调试呢?如果在值或偏移量中获得任何项,您可以观察发生的情况。顺便问一下,您知道0x8+sizeofint16=0xa而不是0x10是什么吗=D