简体   繁体   中英

Save text in a file without deleting in windows form c#

I was creating a program in Windows forms and I wanted to save the username and the password in 2 separate files. One is named: name . The second is named: password . So first I check if the 2 files are empty but when I run the code it deletes the data on the files.

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();
    }

Let's suppose I insert Carl in the name and Jones in the surname when I restart the program I want that in the files it got in the first one the name and in the second one the surname without deleting anything. Thanks!

You can load your files content or create new content and then modify your content and then - delete original and replace with new. Although, you could, as additional step, first - rename the original as backup and then save the new and then remove the original backup.

    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());

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM