随机访问文件
本文关键字:文件 访问 随机 | 更新日期: 2023-09-27 18:24:31
我创建了一个登录表单应用程序,表单有两个文本框,一个接受用户名,另一个接受密码,用户名和密码存储在一个名为"Registered.txt"的文本文件中,我希望我的程序能够读取"Registered.txt"文件,以检查如果用户使用随机访问文件点击登录,输入的密码或用户名是否有效。
我将举一个例子,希望它能帮助您获得您想要的东西。
在本例中,Registered.txt文件应如下所示:Smartsasse,myPasswordOlofBoll,P@ssword
//var path = @"C:'Registered.txt";
var path = "Registered.txt";
var allLines = System.IO.File.ReadAllLines(path);
var userInfo = allLines.Select(l => l.Split(',')).Select(s => new
{
Username = s[0],
Password = s[1]
}).ToList();
var user = userInfo.FirstOrDefault(ui => ui.Username.ToLowerInvariant() == this.UserNameTextBox.Text.Trim().ToLowerInvarant());
if (user != null && user.Password == this.PasswordTextBox)
{
// Login is okay
this.ViewState["loggedInUser"] = user.Username;
}
else
{
// Show error message
throw new Exception("Couldn't login, invalid username or password.");
}
你需要通过"使用System.Linq;"来引用"System.Linq"。如果没有,你可以将一些代码更改为:
bool success = false;
foreach (var line in allLines)
{
var username = line.Split(',')[0];
var password = line.Split(',')[1];
if (username == this.UserNameTextBox.Text && password == this.PasswordTextBox.Text)
{
// Login
// this.ViewState["loggedInUser"] = user.Username;
success = true;
break;
}
}
if (success == false)
{
// Show error
throw new Exception("Couldn't login, invalid username or password.");
}
这段代码不会只由它自己运行,但可能会帮助你得到你想要的。
首先,正如Edi G.在评论中提到的那样,将用户名和密码存储在纯文本文件中是非常糟糕的主意。这种方法的安全性绝对为零。
但如果你仍然想尝试,这里有一些指导。
要从文件中读取文本数据,您需要创建指向文件的FileStream
和从该流中读取的StreamReader
。
using (var fs = new FileStream(@"path_to_your_file'Registered.txt", FileMode.Open))
{
using (var reader = new StreamReader(fs))
{
var line = reader.ReadLine();
while (line != null)
{
// do your checks here
line = reader.ReadLine();
}
}
}