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
声明移动到使用它的位置。不确定操作系统是否已在声明中打开它,然后删除失败。