Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# StreamWriter没有';不回答_C# - Fatal编程技术网

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策略终于结束了这一局面。@ValtersTomsons
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)