此cide用于从富文本框(即用逗号分隔的用户列表)中获取文本,然后在各自的行中写入每个条目。
然而,它没有。我做错了什么?
if (chkWhiteList.Checked)
{
string rawUser = rtboxWhiteList.Text;
string[] list = rawUser.Split(new char[] { ',' });
foreach (string user in list)
{
using (StreamWriter whiteList = new StreamWriter(cleanDir + @"\white-list.txt"))
{
whiteList.WriteLine(String.Format("{0}\r\n", user));
}
}
}
答案 0 :(得分:5)
我会更换你的using
和for loop
。并删除新的行字符
using (StreamWriter whiteList = new StreamWriter(cleanDir + @"\white-list.txt"))
{
foreach (string user in list)
{
whiteList.WriteLine(user);
}
}
答案 1 :(得分:3)
你的foreach和你的使用是错误的方式。您需要使用来设置streamwriter,然后执行循环(foreach)以写入行。
if (chkWhiteList.Checked)
{
string rawUser = rtboxWhiteList.Text;
string[] list = rawUser.Split(new char[] { ',' });
using (StreamWriter whiteList = new StreamWriter(cleanDir + @"\white-list.txt"))
{
foreach (string user in list)
{
whiteList.WriteLine(String.Format("{0}\r\n", user));
}
}
}
(这是对你的代码的粗略破解。)
答案 2 :(得分:2)
{
using (StreamWriter whiteList = new StreamWriter(cleanDir + @"\white-list.txt"))
{
whiteList.WriteLine(String.Format("{0}\r\n", user));
}
}
这将每次都与用户一行重写到文件。
在foreach
周围移动open语句,将所有用户名写入文件。
答案 3 :(得分:2)
试试这个......
if (chkWhiteList.Checked)
{
string rawUser = rtboxWhiteList.Text;
string[] list = rawUser.Split(new char[] { ',' });
using (StreamWriter whiteList = new StreamWriter(cleanDir + @"\white-list.txt"))
{
foreach (string user in list)
{
whiteList.WriteLine(String.Format("{0}\r\n", user));
}
}
}
答案 4 :(得分:1)
这可以通过File.WriteAllLines
string rawUser = rtboxWhiteList.Text;
string[] list = rawUser.Split(',');
System.IO.File.WriteAllLines(cleanDir + @"\white-list.txt", list);
答案 5 :(得分:0)
WriteLine调用附加一个CRLF,但您的String.Format包含一个额外的CRLF。所以你会得到每个用户两行。
并且using语句需要在foreach之外(ist中的字符串用户)。