C# StreamWriter没有';不回答
我正在尝试创建一个程序,将文本文件中的几行编辑为用户设置的值,从一个文本框 至少,在我开始设置这个值之前。我甚至不能编辑这个文件。这个代码怎么了?实际上,我尝试了更多的例子,但没有一个奏效C# StreamWriter没有';不回答,c#,C#,我正在尝试创建一个程序,将文本文件中的几行编辑为用户设置的值,从一个文本框 至少,在我开始设置这个值之前。我甚至不能编辑这个文件。这个代码怎么了?实际上,我尝试了更多的例子,但没有一个奏效 private void pictureBox2_Click(object sender, EventArgs e) //login button { username = textBox1.Text; using (StreamWriter writer = new StreamWriter
private void pictureBox2_Click(object sender, EventArgs e) //login button
{
username = textBox1.Text;
using (StreamWriter writer = new StreamWriter("C:\\TEST.txt", true))
{
writer.WriteLine("Last User:" +username );
}
Application.Exit();
}
对不起,我的英语不好。一个有根据的猜测
尝试将文件写入其他文件夹。C磁盘根目录由操作系统进行写保护 比如说
using (StreamWriter writer = new StreamWriter("C:\\TEMP\\TEST.txt", true))
或者读取枚举以找到应用程序可以存储其数据的适当文件夹
string appFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string privateAppFolder = Path.Combine(appFolder, "MyAppFolder");
if(!Directory.Exists(privateAppFolder)) Directory.CreateDirectory(privateAppFolder);
string myFile = Path.Combine(privateAppFolder, "Test.txt");
using (StreamWriter writer = new StreamWriter(myFile, true))
{
writer.WriteLine("Last User:" +username );
}
在退出应用程序之前,通过调用writer.flush()尝试刷新writer。默认情况下,标准用户对C:\drive的根目录没有编辑权限。你在接受一个例外吗?你的代码为我工作。我在Windows 7上以管理员身份运行。@user251414:
Dispose
调用using
块正在刷新stream.File.AppendAllLines(@“C:\TEST.txt”,new[]{string.Format(“最后一个用户:{0}”,“PJx”)});当我第一次开始摆弄那个类的时候,我也遇到了这个问题。是的,它通常是写保护的,当然可以更改,但这不是一个好的做法。我认为XP是这样的,但当时每个人都是管理员,所以没有人注意到。@user251414-它随系统上的安全设置而变化,但无论哪种方式,写入C:\\通常都是不好的做法。自Windows 2000以来,C:\对标准用户是只读的。真正地只是这么长时间以来,许多Windows用户一直以管理员身份运行。Vista/7/8中新的UAC策略终于结束了这一局面。@ValtersTomsonsEnvironment.GetFolderPath(Environment.SpecialFolder.ApplicationData)