【发布时间】:2018-04-09 14:43:18
【问题描述】:
我认为我在这里是个白痴,但我是 C# 新手。如果我运行以下
StreamReader sr = new StreamReader(@"./common/hostname");
string line= sr.ReadLine();
sr.Close();
代码执行得很好,但是如果我运行以下代码
// lstboxSites.Text == foo
StreamReader sr = new StreamReader(string.Format(@"./site/{0}", lstboxSites.Text));
string line = sr.ReadLine();
sr.close()
这会引发“路径中的非法字符”的错误,如果我尝试输入目录本身它会起作用
StreamReader sr = new StreamReader(@"./site/foo");
string line = sr.ReadLine();
sr.close()
我是个白痴吗?如果我将中间部分输出到 messagebox.show() 那么它是正确的
理想的工作示例——已编辑
// user clicks on list box item, read value on click
StreamReader sr = new StreamReader(string.Format(@"./site/{0}", lstboxSites.Text));
string line = sr.ReadLine();
sr.Close();
// write to a text box
txtFakeBox.Text = line;
【问题讨论】:
-
你想达到什么目的?第二个代码块对我来说毫无意义
-
lstboxSites是什么? -
嘿。基本上我需要它,所以当用户单击“列表框”中的项目时,它将读取文件并将其显示到“文本框”中。
-
使用
string text = File.ReadAllText(myPath)。尝试使用\而不是/。并检查.是不是你认为的那样 -
要调试这样的东西,我会把
string.Format放在单独的行上并设置一个断点,看看你得到的字符串是否是你所期望的,然后在new StreamReader(myString)中使用它
标签: c#