写出C#中文件夹中的所有文本文件

时间:2016-01-27 11:04:11

标签: c#

我正在创建这个程序,您作为用户可以使用它创建标题和消息,然后将其自身保存为桌面上的文本文件。我希望用户能够读取他创建的所有文本文件,而不是将消息保存到文本文件中的字符串。不仅仅是一个特定的文本文件,还有整个文本文件夹。

对不起,如果这有点麻烦,我就是C#的新手。

代码:

class MainClass
    {          
        public static void Main (string[] args)
        {
            //Variables
            List<string> usrMsg = new List<string>();
            bool alive = true;
            int choice;
            string titel;

            //while loop
            while (alive == true) {
                Console.Clear ();
                Console.WriteLine ("----MENU---");
                Console.WriteLine ("[1]save value");
                Console.WriteLine ("[2]write out your messages");
                Console.WriteLine ("[3]clear");
                Console.WriteLine ("[4]Quit");
                Console.WriteLine("[5]Search Title and write out message");

                //exception with choice in menu
                if (!Int32.TryParse(Console.ReadLine(), out choice))
                {
                    // parse failed  display message to user
                    Console.WriteLine("----Menu only works with numbers 1-5----");
                    Console.WriteLine ("----Press enter to continue to menu----");
                    Console.ReadLine ();

                    continue;
                }

                //menu with switch
                switch (choice) {

                case 1:
                    Console.Write ("Write the title of your message: ");
                    titel = Console.ReadLine ();
                    Console.Write ("Write in your message: ");
                    usrMsg.Add (Console.ReadLine ());
                        //Creates a text file named with the title
                        System.IO.File.WriteAllLines(@"C:\Users\desktop" + titel + ".txt", usrMsg);
                        Console.WriteLine ("Saved");
                    Console.WriteLine ("Press enter to continue");

                    Console.ReadLine ();
                    break;

                case 2:
                    Console.WriteLine ("----Messages you have saved:");
                        try
                        {
                            for (int i = 0; i < usrMsg.Count; i++)
                            {
                                Console.WriteLine(usrMsg[i]);
                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Your book is empty" + ex);
                            Console.ReadLine();
                            continue;
                        }                     

                    Console.WriteLine ("--Press enter to continue to menu--");
                    Console.ReadLine ();
                    break;

                case 3:
                        usrMsg.Clear();
                    Console.WriteLine ("Cleared");
                    Console.WriteLine ("Press enter to continue to menu");
                    Console.ReadLine ();
                    break;

                case 4:
                    Console.WriteLine ("Quit");
                    alive = false;
                    break;

                    case 5:
                        Console.Write("Search your title: ");
                    try{
                        string searchMsg = Console.ReadLine();
                        string text = File.ReadAllText(@"C:\Users\Desktop" + searchMsg + ".txt");
                        Console.WriteLine(text);
                    }
                    catch {
                        Console.WriteLine ("The title that you seek does not exist in this program");
                        Console.WriteLine ("Press enter to continue to menu");
                        Console.ReadLine ();
                        continue;
                    }
                    Console.WriteLine("Press enter to continue to menu");
                        Console.ReadLine();

                        break;
                    //exception in menu
                    default:
                    Console.WriteLine ("---Choose a number between 1 and 5---");
                    Console.WriteLine ("---Press enter to continue to menu---");
                    Console.ReadLine ();
                    continue;

                }
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

string[] fileData = Directory.EnumerateFiles(@"C:\Users\Desktop", "*.txt")
    .Select(x => File.ReadAllText(x)).ToArray();

这将创建一个字符串数组,其中包含您指定位置(桌面 - @"C:\Users\Desktop")中与给定模式匹配的所有文件的内容(txt文件 - &#34; *.txt"