Как читать все тексты в нескольких .txt файлах - PullRequest
0 голосов
/ 31 октября 2018

У меня есть проблема в моей программе (экзамен с несколькими вариантами ответов), когда я не знаю, как писать код для чтения всего текста в нескольких файлах.

испытуемые сначала регистрируют свои (имя, возраст, пол, контактный номер), а затем переходят к экзамену.

После экзамена будут отображаться результаты (правильные ответы, неправильные ответы, общее количество пунктов).

После этого все это будет сохранено в текстовом файле с помощью 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();
}}

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Пожалуйста, найдите другое решение

    using System.IO;
    static void Main(string[] args)
    {
        var txtFiles = Directory.EnumerateFiles(@"D:\SampleStackoverflow\", "*.txt");
        foreach (string currentFile in txtFiles)
        {
            var fileStream = new FileStream(currentFile, FileMode.Open, FileAccess.Read);
            using (var streamReader = new StreamReader(fileStream, Encoding.UTF8))
            {
                string line;
                while ((line = streamReader.ReadLine()) != null)
                {
                    //Do the action of Storing the file content
                }
            } 
        }
    }
0 голосов
/ 31 октября 2018
    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);
        }
    }
...