-5

我目前正在打开一个文件并将其显示在消息框上。

private void button2_Click_1(object sender, EventArgs e)
{
    //OpenFileDialog1.ShowDialog();
    OpenFileDialog file = new OpenFileDialog();
    file.FileName = "";
    file.Title = "Open A Text document.";
    file.Filter = "(*.gc)|*.gc|(*.etf)|*.etf|(*.txt)|*.txt|(*.GC)|*.GC|(*.tap)|*.tap";
    DialogResult result = file.ShowDialog();
    if (result == DialogResult.OK)
    {
        System.IO.StreamReader OpenFile = new System.IO.StreamReader(file.FileName);
        textBox1.Text = OpenFile.ReadToEnd();
        OpenFile.Close();


    }

    if (file.FileName.Length > 0)
    {
        OpenFile(file.FileName);
    }

但我需要逐行读取文件并将其显示在消息框上。有没有办法更改此代码。

4

5 回答 5

2

有一个File.ReadLines方法返回一个 IEnumerable 所以你可以这样做:

foreach(var line in File.ReadLines("myfile.txt")){
   //Do stuff with line
}
于 2013-03-07T15:25:10.957 回答
0

从文件中读取所有行的最简单方法是File.ReadAllLines方法(在内部使用StreamReader):

foreach(string line File.ReadAllLines(fileName))
    MessageBox.Show(line);
于 2013-03-07T15:25:46.093 回答
0

考虑使用StreamReader.ReadLine()方法。

于 2013-03-07T15:24:00.307 回答
0

这正是该ReadLine方法的用途

while (OpenFile.Peek() >= 0) 
{
    MessageBox.Show(OpenFile.ReadLine());
}
于 2013-03-07T15:24:40.977 回答
0

你试过这个OpenFile.ReadLine()方法吗?


或者,对于更激进的方法

string[] lines = OpenFile.ReadToEnd().Split('\n');
于 2013-03-07T15:24:58.637 回答