c# - 如何读取多个 .txt 文件中的所有文本
问题描述
我的程序(多项选择考试)中有一个问题,我不知道如何读取多个文件中的所有文本。
考生将首先注册他们的(姓名、年龄、性别、联系电话),然后他们将继续参加考试。
考试结束后将显示结果(正确答案、错误答案、总题目)。
之后,所有这些都将保存在一个 .txt 文件中,使用StreamWriter
注意:我的 streamwriter 有一个自动命名(如 windows)
例如:
xReg.txt, xReg(1).txt, xReg(2), xReg(n).txt
这就是我所做的,它只写了所有 .txt 文件的所有内容,但我希望有一个选项可以在我的菜单中查看 1 个文件。
public class FilesL
{
public static void alltxt()
{
Console.Clear();
foreach (var file in Directory.GetFiles("C:\\Examinees", "*.txt",
SearchOption.AllDirectories))
{
var a = File.ReadAllText(file);
Console.WriteLine(a);
}
Console.WriteLine();
Console.ReadKey();
Ad.Admin();
}
}
这是我的管理员登录到菜单顺便说一句
public class Ad
{
private static string User = "";
private static string Password = "";
private static int instance = 3;
public static string fileName = @"C:\\Examinees\xReg.txt";
private static void V()
{
Console.WriteLine("\n\t\tAdministrator");
Console.WriteLine("\n\nMenu\n");
Console.WriteLine("\t1) View Examinees' Results\n");
Console.WriteLine("\t2) Restart Program\n");
Console.WriteLine("\t3) View Test\n");
Console.WriteLine("\t4) Terminate Program\n\n");
Console.Write("Select: ");
int choice = Convert.ToInt32(Console.ReadLine());
switch (choice)
{
case 1:
FilesL.alltxt();
break;
case 2:
Home.H();
break;
case 3:
Questions.exam();
break;
case 4:
Clear.terminate();
break;
default:
Console.WriteLine("Invalid choice, please try again!");
Console.ReadKey();
V();
break;
}
}
public static void Admin()
{
Console.Clear();
do
{
Console.WriteLine("\nYou need to log-in to confirm that you are the ADMINISTRATOR.");
Console.WriteLine("\n\t╔═════════════════════════════════════════╗");
Console.WriteLine("\t║\t ! Login Confirmation ! ║");
Console.WriteLine("\t╚═════════════════════════════════════════╝");
Console.Write("\n\tEnter Your Username: ");
User = Console.ReadLine();
Console.Write("\tEnter Your Password: ");
Password = Console.ReadLine();
if (User == "Admin" && Password == "AAAA")
{
Console.Clear();
V();
}
else
{
instance--;
Console.WriteLine("\nSorry, you entered a wrong input! \nPress
Enter to Continue.\n\nAttempts Left: {0}", instance);
Console.ReadKey();
Console.Clear();
if (instance == 0)
{
Clear.terminate();
}
}
}
while (User != "Admin" || Password != "AAAA");
Console.Clear();
}}
解决方案
string[] files = Directory.GetFiles(@"D:\test\", "*.txt");
List<string> data = new List<string>();
foreach (string file in files)
{
using (StreamReader sr = File.OpenText(file))
{
string fileContent = sr.ReadToEnd();
data.Add(fileContent);
}
}
推荐阅读
- php - 如何在laravel的列字段中获取选定的值
- javascript - 单击时下载 png 图像 Bootstrap 4 和 JavaScript
- elixir - Distillery build 未与 postgresql elixir phoenix 连接
- docker - 如何从 Ansible 运行 shell 别名 docker 命令?
- c# - SignalR 未收到消息 AspNet
- sql - 返回表中重复值的所有列名
- java - 按下 AlertDialog 的肯定按钮时是否刷新 RecyclerView
- javascript - 使用 javascript 突出显示 HTML 语法错误
- angular - 如果在父组件和子组件中设置 ChangeDetectionStrategy OnPush 将不起作用
- android - 将arraylist从一个片段解析到android中的另一个片段