Проблема с чтением файла - PullRequest
       3

Проблема с чтением файла

1 голос
/ 16 сентября 2010

Я не могу найти решение этой проблемы:

Я пишу программу, которая читает все файлы в каталоге и помещает их в список.Когда пользователь выбирает файл из списка, программа читает выбранный файл и распечатывает некоторую информацию ...

Проблема в том, что после первого выбора моя программа "перестает работать".Он не падает, но когда я пытаюсь выбрать другой файл, он ничего не делает.

Я понял, что проблема в:

private String porocilo(String s)
{
 file = "/path to file/";
 TextReader tr = new StreamReader(file); //<- problem here
 //...
 tr.close();
 return someinfo;
}
//..
//Call function:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
 label1.Text = porocilo(listBox1.SelectedItems[0].ToString());
}

После удаления этой (проблемной) строкипрограмма обычно выбирает файлы, но без этого я не могу читать файлы, и моя программа ничего не делает.

Может кто-нибудь сказать мне, где я не прав?

Br, Wolfy

Ответы [ 3 ]

2 голосов
/ 16 сентября 2010

Если код, который вы разместили, на самом деле является кодом, который вы используете (плюс пропущенная точка с запятой), то причина, по которой вы ничего не видите, заключается в том, что ваш код продолжает открываться и читать один и тот же файл, а не файл, выбранный пользователем.Вы устанавливаете file на постоянный путь / имя файла и читаете его, и вы не используете параметр s.

0 голосов
/ 16 сентября 2010

В поле «Список» выбранного метода изменения индекса необходимо назначить выбранное значение, как показано ниже

 //Call function:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
 label1.Text = porocilo(listBox1.SelectedItem.Text);
}

Также проверьте вашу функцию "porocilo", она использует параметр corectly

0 голосов
/ 16 сентября 2010

Похоже, у вас есть жестко закодированный путь в вашем методе porocilo. То есть новый StreamReader принимает в качестве аргумента файл, а не s. Так что он откроет только один файл, а не тот, который вы выбрали.

private String porocilo(String s)
{
 //file = "/path to/file" // not sure what this is...???
 TextReader tr = new StreamReader(s); //<- fix here
 //...
 tr.close();
 return someinfo;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...