从另一个列表框中显示所选文本文件

时间:2013-06-28 18:55:39

标签: c#

这是我的代码:

protected void Button1_Click(object sender, EventArgs e)
{


    FileInfo SelectedFileInfo = (FileInfo)ListBox1.SelectedItem;

    StreamReader FileRead = new StreamReader(SelectedFileInfo.FullName);
    string CurrentLine = "";
    //int LineCount = 0;
    while(FileRead.Peek() != -1)
    {
        CurrentLine = FileRead.ReadLine();
        //LineCount++;
        //if(LineCount % 5 == 2)
        {
            ListBox2.Items.Add(CurrentLine);
        }
    }
    FileRead.Close(); 
}

但引发了关于:

的异常
  

无法将'System.Web.UI.WebControls.ListItem'类型转换为'System.IO.FileInfo'

1 个答案:

答案 0 :(得分:1)

填充列表框时,请使用文件名而不是FileInfo 然后在Button1_Click中,使用ListBox1.SelectedValue获取所选文件名

    protected void Button1_Click(object sender, EventArgs e)
    {
        ListBox2.Items.Clear();
        if (ListBox1.SelectedIndex > -1)
        {
            string filename = ListBox1.SelectedValue;

            StreamReader FileRead = new StreamReader(filename);
            string CurrentLine = "";
            //int LineCount = 0;
            while (FileRead.Peek() != -1)
            {
                CurrentLine = FileRead.ReadLine();
                ListBox2.Items.Add(CurrentLine);
            }
            FileRead.Close();
        }
        else
        {
            ListBox2.Items.Add("Please select a file first");
        }
    }

    protected void Btn_Load_Click(object sender, EventArgs e)
    {
        DirectoryInfo dinfo = new DirectoryInfo(@"C:\errorlog");
        FileInfo[] Files = dinfo.GetFiles("*.txt");
        foreach (FileInfo file in Files)
        {
            ListBox1.Items.Add(file.FullName);

        }
    }

}