如何使用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循环上。但不知道如何解决?

如何使用Streamreader类处理使用openFileDialog提取的多个文件

试试这个:

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