C# 如何在C中从文件夹中选择文件

C# 如何在C中从文件夹中选择文件,c#,C#,我想从C命令行项目中的文件夹中选择一个文件。 例如,在C:\deployment\Test\u文件夹中有10多个。我用此代码显示该文件夹的内容 例如,我想从该文件夹中选择第五个文件。如何实现这一点?对于一个简单的命令行界面工具,我想说,您可以要求用户输入一个引用列表中某个文件的数字,只要文件夹中的文件不多就可以了 大概是这样的: DirectoryInfo parentDir = new DirectoryInfo("C:/Deployment/Test_Folder");

我想从C命令行项目中的文件夹中选择一个文件。 例如,在C:\deployment\Test\u文件夹中有10多个。我用此代码显示该文件夹的内容


例如,我想从该文件夹中选择第五个文件。如何实现这一点?

对于一个简单的命令行界面工具,我想说,您可以要求用户输入一个引用列表中某个文件的数字,只要文件夹中的文件不多就可以了

大概是这样的:

        DirectoryInfo parentDir = new DirectoryInfo("C:/Deployment/Test_Folder");

        int i = 1;
        foreach (FileInfo f in parentDir.GetFiles())
        {
            Console.WriteLine($"{i}. {f.Name}");
            i++;
        }

        Console.WriteLine($"Please provide the number of the file your want to select (1-{i}):");

        int id = -1;
        if(Int32.TryParse(Console.ReadLine(),out id))
        {
            FileInfo f = parentDir.GetFiles()[id - 1];
            //Do something
        }
这个怎么样

使用SelectFilepath调用 它将显示文件,以便用户可以使用向上键和向下键进行选择

public static string SelectFile(string path)
        {
            bool FileSelect = false;
            int FileChoice = 0;
            List<string> Files = new List<string>();

            foreach (string file in System.IO.Directory.GetFiles("."))
            {
                Files.Add(file);
            }
            if (Files.Count > 0)
            {
                FileSelect = true;
            }
            else
            {
                return "";
            }
            while (FileSelect)
            {
                Console.Clear();
                Console.WriteLine("Select a file");
                for (int i = 0; i < Files.Count; i++)
                {
                    if (i == FileChoice)
                    {
                        Console.Write("[*]");
                    }
                    else
                    {
                        Console.Write("[ ]");
                    }
                    Console.WriteLine(Files[i]);
                }
                var key = Console.ReadKey();
                if (key.Key == ConsoleKey.UpArrow)
                {
                    FileChoice -= 1;
                    if (FileChoice == -1)
                    {
                        FileChoice = Files.Count - 1;
                    }
                }
                if (key.Key == ConsoleKey.DownArrow)
                {
                    FileChoice += 1;
                    if (FileChoice == Files.Count)
                    {
                        FileChoice = 0;
                    }
                }
                if (key.Key == ConsoleKey.Enter)
                {
                    FileSelect = false;
                }
            }
            return Files[FileChoice];
        }

你能添加代码而不是图片吗?这些文件是一个数组或列表,因此您可以通过索引或检查某个文件名等来访问nr5。了解应用程序的类型也很有用—控制台、WinForms、WPF。对于后两个,您可以使用标准对话框来选择文件。好的,对不起,这是一个.cs->控制台。显示文件夹内容的代码:System.IO.DirectoryInfo ParentDirectory=new System.IO。DirectoryInfo@C:\Test\u文件夹;ParentDirectory.GetFiles{Console.WriteLineDatei:+f.Name;}中的foreach System.IO.FileInfo f如果目录共享文件夹中的文件列表,例如,或用户在显示和用户响应之间创建/删除目录中的文件,则可能选择错误的文件。最好是在内存中创建一个列表,显示该列表并从该列表中获取文件名。确实,这不是一个简单的示例,它也不会检查int是否在范围内,正确处理非数字输入等。但我想说,它得到了点,谢谢!!这就是我要找的!所以有一个问题我有这样一个路径:公共静态字符串DB_restore_path=WoringPath+@\Backup\restore\mysqldump.txt;现在我想删除mysqldump.txt并将我在代码中选择的文件放入我必须说的公共静态字符串DB\u restore\u path=WoringPath+@\Backup\restore\f;