winforms 在Windows窗体中将文本保存在文件中而不删除

tquggr8v  于 2022-11-17  发布在  Windows
关注(0)|答案(1)|浏览(127)

我在Windows窗体中创建了一个程序,我想将用户名和密码保存在两个单独的文件中。其中一个文件名为:name。第二个被命名为:所以我首先检查这两个文件是否为空,但是当我运行代码时,它会删除文件上的数据。

private void btn1_Click(object sender, EventArgs e)
{
    int count = 0;
    TextWriter name = new StreamWriter("C:\\Users\\skerd\\AppData\\Local\\Temp\\jvvhbbcp..txt");
    TextWriter psswd = new StreamWriter("C:\\Users\\skerd\\AppData\\Local\\Temp\\x1pu0bds..txt");

    if (new FileInfo("C:\\Users\\skerd\\AppData\\Local\\Temp\\jvvhbbcp..txt").Length == 0 && new FileInfo("C:\\Users\\skerd\\AppData\\Local\\Temp\\x1pu0bds..txt").Length == 0)
    {
        if (count < 1)
        {
            name.Write(txtB_1.Text);
            psswd.Write(txtB_2.Text);
            name.Close();
            psswd.Close();
            count++;
        }
        Close();
    }

让我们假设我插入卡尔的名字和琼斯的姓氏,当我重新启动程序,我希望在文件中,它得到了在第一个名字,在第二个姓氏没有删除任何东西.谢谢!

pqwbnv8z

pqwbnv8z1#

您可以加载文件内容或创建新内容,然后修改内容,然后删除原始内容并替换为新内容。不过,作为附加步骤,您可以首先将原始内容重命名为备份,然后保存新内容,然后删除原始备份。

var nameFile = "PATH1";
    var pwdFile = "PATH2";
    bool nameExists = File.Exists(nameFile); 
    bool pwdExists = File.Exists(pwdFile);
    
    StringBuilder nameContent = new StringBuilder();
    if (nameExists)
        nameContent.Append(File.ReadAllText(nameFile));
    
    
    StringBuilder pwdContent = new StringBuilder();
    if (pwdExists) 
        pwdContent.Append(File.ReadAllText(pwdFile));
    

    // you can potencially do more text manipulations here
    
    nameContent.AppendLine("NEW NAME");
    pwdContent.AppendLine("NEW PASSWORD");
    
    if (nameExists)
        File.Delete(nameFile);
    
    File.WriteAllText(nameFile, nameContent.ToString());
    
    
    if (pwdExists)
        File.Delete(pwdFile); 
    
    File.WriteAllText(pwdFile, pwdContent.ToString());

相关问题