首先,我将一个相当大的文件加载到数据网格视图中(~100MB)。该文件包含数十个"配置文件"。用户可以在加载到数据网格视图后选择要查看的配置文件。 我想要做的是让用户选择一个特定的配置文件,并将它们保存为一个单独的文件,这样他们就不必每次都打开一个大文件。 以下是文件的加载方式(注意它是数据网格视图的数据绑定):
private void boardListView_SelectionChanged(object sender, EventArgs e)
{
if (boardListView.SelectedRows.Count > 0)
{
var s = (BoardCandidateOffset)boardListView.SelectedRows[0].DataBoundItem;
LoadFromFile(s);
plotModel.ResetAllAxes();
plotView.InvalidatePlot(true);
}
}
这是我阅读文件的地方:
private void LoadFromFile(BoardCandidateOffset b)
{
profiles.Clear();
using (var stream = File.OpenRead(CurrentFileName))
using (var reader = new BinaryReader(stream))
{
stream.Seek(b.FileOffset, SeekOrigin.Begin);
for (int i = 0; i < b.Count; i++)
{
profiles.Add(CustProfileList.ReadFromBinaryReader(reader));
}
}
}
在这里,我尝试将选定的配置文件写入新文件:
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
if (boardListView.Rows.Count > 0)
{
SaveFileDialog saveBoard = new SaveFileDialog();
saveBoard.DefaultExt = ".prof";
if (saveBoard.ShowDialog() == DialogResult.OK)
{
using (Stream stream = File.Create(saveBoard.FileName))
{
using (var writer = new BinaryWriter(stream))
{
foreach(var p in profiles)
{
p.WriteToBinaryWriter(writer);
}
}
}
}
}
else return;
}
不幸的是,我在我创建的文件中没有得到任何结果。有什么建议吗?