如何使用Streamreader类处理使用openFileDialog提取的多个文件
本文关键字:提取 文件 openFileDialog Streamreader 何使用 处理 | 更新日期: 2023-09-27 18:00:03
如何读取我从openFileDialog
框中影响的两个文件?下面是我写的代码。
private void loadBatchButton_Click(object sender, EventArgs e)
{
var openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = true;
XmlSerializer serializer = new XmlSerializer(typeof(List<ExtractSerializedAction>));
StreamReader myReader = null;
foreach(string file in openFileDialog.FileNames)
{
myReader = new StreamReader(file);
}
var result = serializer.Deserialize(myReader) as List<ExtractSerializedAction>;
myReader.Close();
foreach (var item in result)
{
//some code here
};
}
上面的代码只获取我使用openFileDialog
选择的最后一个文件。我知道问题出在Streamreader
逻辑和foreach
循环上。但不知道如何解决?
试试这个:
foreach(string file in openFileDialog.FileNames)
{
using(StreamReader myReader = new StreamReader(file))
{
var result = serializer.Deserialize(myReader) as List<ExtractSerializedAction>;
foreach (var item in result)
{
//some code here
}
}
}
注意:您可以使用我的代码中所示的块在内部声明StreamReader对象myReader,这样您就可以在for循环外部删除StreamReader
对象声明(以下语句)。
StreamReader myReader = null; //remove this