C# 具有动态选项的控制台菜单
我有一个可以在控制台应用程序中打开的文本文件列表 我想要的输出类似于:C# 具有动态选项的控制台菜单,c#,C#,我有一个可以在控制台应用程序中打开的文本文件列表 我想要的输出类似于: List1.txt List2.txt List3.txt 等 一旦我得到这个输出,我想要一种能够调用其中一个文件并通过Console.ReadLine()打开它的方法 我现在正在做的是 string[] FileNames = Directory.GetFiles(@"Itemized\", ".txt"); Console.WriteLine(String.Join(Environment.NewLine,FileNam
Console.ReadLine()打开它的方法代码>
我现在正在做的是
string[] FileNames = Directory.GetFiles(@"Itemized\", ".txt");
Console.WriteLine(String.Join(Environment.NewLine,FileNames));
这使我能够获得如下列表:
逐项\List1.txt
逐项\List2.txt
逐项\List3.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();
}
static void Main(字符串[]args)
{
string dirFolderPath=string.Format(“{0}/{1}”,Directory.GetCurrentDirectory(),Itemized”);
DirectoryInfo dir=新的DirectoryInfo(dirFolderPath);
如果(!dir.存在)
{
dir.Create();
}
FileInfo[]files=dir.GetFiles(“*.txt”);
for(int i=0;i
这看起来很神奇,测试出来这正是我想要的!非常感谢:)只有当我删除“*.txt”
知道原因吗?所有内容都显示为文本文档,当我将其删除时,列表中的表单将不显示它们。不管怎样,你帮我更接近我想要的upvote@Spooler对我来说效果很好。我的示例中唯一的问题是,您没有得到任何行号。要实现这一点,您必须使用类似@Ephraim used itYea的for循环输出文件名
,这就是他得到接受答案的原因(显示了for循环以添加值)。无论如何,现在是时候让我想一想如何为这个菜单提供用户交互了