带有动态选项的控制台菜单

本文关键字:控制台 菜单 选项 动态 | 更新日期: 2023-09-27 17:55:46

我有一个文本文件列表,我希望能够在控制台应用程序中打开。

我想要的输出是这样的:

  1. 列表1.txt
  2. 列表2.txt
  3. 列表3.txt

获得此输出后,我想要一种方法来调用其中一个文件并通过Console.ReadLine();打开它

我现在正在做的是

string[] FileNames = Directory.GetFiles(@"Itemized'", ".txt");
Console.WriteLine(String.Join(Environment.NewLine,FileNames));    

这使我能够获得如下所示的列表:

逐项''列表1.txt

逐项''列表2.txt

明细''列表3.txt

如果我知道文件夹中的文件数量,我可以对其进行硬编码,但我遇到的问题是可能存在任意数量的文件。

因此,我目前正在寻找一种将缩放数值附加到每个文件并从其前面删除文件夹名称的方法。

我尝试使用 for 循环让它工作,但似乎无法绕过它。

带有动态选项的控制台菜单

试试这样的事情

var fileNames = Directory.GetFiles(@"Itemized'", "*.txt").Select(Path.GetFileName).ToArray();
Console.WriteLine(string.Join(Environment.NewLine, fileNames));

这里有一些干净而简单的东西:

    static void Main(string[] args)
    {
        string dirFolderPath = string.Format("{0}/{1}", Directory.GetCurrentDirectory(), "Itemized");
        DirectoryInfo dir = new DirectoryInfo(dirFolderPath);
        if(!dir.Exists)
        {
            dir.Create();
        }
        FileInfo[] files = dir.GetFiles("*.txt");
        for(int i = 0; i < files.Length; i++)
        {
            string line = string.Format("'n{0}-{1}", i, files[i].Name);
            Console.WriteLine(line);   
        }
        Console.ReadLine();
    }