Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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# 4.0 使用file类写入文件_C# 4.0 - Fatal编程技术网

C# 4.0 使用file类写入文件

C# 4.0 使用file类写入文件,c#-4.0,C# 4.0,我尝试创建代码来创建一个文件,并将用户名和密码写入该文件。当我尝试运行代码时,它总是告诉我该文件已被使用,我无法更改该文件。有人能告诉我我的代码有什么问题吗 string FileName = @"C:\project\userandPassword.txt"; StreamWriter RW = new StreamWriter(FileName); UserName user = new UserName(); if (File.Exists(FileName)) { // de

我尝试创建代码来创建一个文件,并将用户名和密码写入该文件。当我尝试运行代码时,它总是告诉我该文件已被使用,我无法更改该文件。有人能告诉我我的代码有什么问题吗

string FileName = @"C:\project\userandPassword.txt";
StreamWriter RW = new StreamWriter(FileName); 

UserName user = new UserName();
if (File.Exists(FileName))
{
    // delete the file if exists
    File.Delete(FileName);
}
else
{
    // if doesn't, it will create.
    File.Create(FileName);
    Console.WriteLine("please enter your new user name");
    user.Newuser = Console.ReadLine();
    Console.WriteLine("please enter your password");
    user.Newpassword = Console.ReadLine();
    RW.WriteLine(user.Newuser);
    RW.WriteLine(user.Newpassword);
    RW.Close();
    Console.ReadLine();
}

使用文件名的StreamWriter对象是删除并创建文件。出现此错误是因为在RW.Close()之前调用File.Delete()方法。您可以按如下方式编写代码

        string FileName = @"C:\project\userandPassword.txt";
        if (File.Exists(FileName))
        {
            //delete the file if exists .
            File.Delete(FileName);

        }
        else
        {
            StreamWriter RW = new StreamWriter(FileName);
            UserName user = new UserName();

            Console.WriteLine("please enter your new user name");
            user.Newuser = Console.ReadLine();
            Console.WriteLine("please enter your password");
            user.Newpassword = Console.ReadLine();
            RW.WriteLine(user.Newuser);
            RW.WriteLine(user.Newpassword);
            RW.Close();
        }

然后请阅读您的问题,并包括您得到的确切错误消息(包括行号或堆栈跟踪,如果有)。作为旁注,您永远不应以明文形式保存密码。这是非常不安全的,在GDPR下是应该受到惩罚的。始终保存咸哈希。或者使用为您提供此功能的库。另一件事:请提供代码作为参考。我试图格式化您的代码,但不清楚
if
else
是否应该是这样:如果文件存在,您只会删除它,而不会编写它——这是有意的吗?为了代码清晰,您可以将
StreamWriter
声明移动到使用它的位置。不确定操作系统是否已在声明中打开它,然后删除失败。