if / then语句和streamreader的问题

时间:2011-09-04 12:06:10

标签: c# proxy httpwebrequest streamreader

在我的程序中,我实现了代理支持。

我设置了带有复选框的if / then语句,所以基本上它表示如果选中该复选框,则激活代理并使用用户上传到列表框中的代理。

我还在我的代码中设置了一些流式读取器,它们在文本框中导入文本文件的文本。当我尝试执行代理并尝试导入文本文件时,它会给我一些错误,说明找不到该文件,但是当我不检查复选框以使用代理时它会导入它就好了。

这是复选框的代码:

if (chkBoxProxy.Checked)
{
    if (listBox1.SelectedIndex < listBox1.Items.Count - 1)
    {
        listBox1.SelectedIndex = listBox1.SelectedIndex + 1;
        listBox1.SetSelected(listBox1.SelectedIndex, true);
        RefreshIESettings(listBox1.SelectedItem.ToString());

        for (int i = 0; i < numericUpDown2.Value; i++)
        {
            listBox4.SetSelected(i, true);
            listBox4.SelectedItem.ToString();

           account();
        }
    }
}
else
{
    for (int i = 0; i < numericUpDown2.Value; i++)
    {
        listBox4.SetSelected(i, true);
        listBox4.SelectedItem.ToString();

        account();
    }
}

这是我拥有的几个流阅读器之一的代码:

StreamReader stream1 = new StreamReader("website.txt");
string stream2 = stream1.ReadToEnd();
txtBoxImportWebsite.Text = stream2;

stream1.Close();
stream1.Dispose();

1 个答案:

答案 0 :(得分:0)

男孩,你的代码不够完整,我们应该看到你调用流管理的所有地方。从哪里/什么是文件website.txt创建的?为什么打开它时没有指定完整路径?

作为一般规则,你应该使用如此近距离包裹你的Streams并在使用块结束时自动调用dispose,并且在异常的情况下,你可以用这种方式重写你的最后一个片段:

using (var stream1 = new StreamReader("website.txt"))
{
  txtBoxImportWebsite.Text = stream1.ReadToEnd();
}