如何使用filestream在C#console程序中为多个用户创建登录

时间:2014-12-03 12:15:41

标签: c#

我已经使用此代码为用户创建登录,但如果我尝试添加更多,则会覆盖当前的。我试图在文件模式下使用追加,给我错误信息。

        public void AddNewUser()
    {
        Console.Clear();
        Console.WriteLine("Creating New User");
        String Username, Password = string.Empty;
        Console.WriteLine("Enter The UserName");
        Username = Console.ReadLine();
        Console.WriteLine("Enter The Passwrod for the User");
        Password = Console.ReadLine();
        StreamWriter sw = new StreamWriter(File.Create("C:/Users/Olasunky/Documents/Visual Studio 2012/Projects/TheFileVersionMaintenanceUtility/Password/UserNameAndPassword.txt"));
        sw.WriteLine(Username);
        sw.WriteLine(Password);
        sw.Close();

        Console.WriteLine("Done....");
    }

3 个答案:

答案 0 :(得分:2)

使用System.IO.File.AppendText(string path)附加到文件而不是覆盖它。

答案 1 :(得分:0)

这是因为你在每次执行时都覆盖了文件。

File.Create - 创建一个新文件。如果同一路径上的文件具有相同的名称和相同的扩展名,则会删除旧文件并创建新文件。 看看File.AppendText,这可以帮助您解决问题。

此外,在C#中捕获异常很重要。它可能会给您一条错误消息,因为没有文件或您使用File.AppendText错误。

答案 2 :(得分:0)

如果要将数据附加到file.false以覆盖该文件,则为true。如果指定的话  文件不存在,此参数无效,构造函数创建  一个新文件。

        static void Main(string[] args)
        {
            Console.Clear();
            Console.WriteLine("Creating New User");
            String Username, Password = string.Empty;
            Console.WriteLine("Enter The UserName");
            Username = Console.ReadLine();
            Console.WriteLine("Enter The Passwrod for the User");
            Password = Console.ReadLine();
            StreamWriter sw = new StreamWriter("D:/UserNameAndPassword.txt",true);
            sw.WriteLine(Username);
            sw.WriteLine(Password);
            sw.Close();
            Console.WriteLine("Done....");
        }