C# GetFiles()用户输入路径错误

C# GetFiles()用户输入路径错误,c#,C#,我试图从控制台中用户输入的路径获取目录中的所有文件。但我一直收到这样的错误“System.ArgumentException:“第二个路径片段不能是驱动器或UNC名称”我已经看过这个答案,它说错误是因为路径中的驱动器名称,但这没有意义。当我像这样测试代码时,如果路径是用驱动器号硬编码的,它就会工作 DirectoryInfo d = new DirectoryInfo(@"C:\Users\Christopher Thesner\Desktop\Spoon\"); dir

我试图从控制台中用户输入的路径获取目录中的所有文件。但我一直收到这样的错误“System.ArgumentException:“第二个路径片段不能是驱动器或UNC名称”我已经看过这个答案,它说错误是因为路径中的驱动器名称,但这没有意义。当我像这样测试代码时,如果路径是用驱动器号硬编码的,它就会工作

DirectoryInfo d = new DirectoryInfo(@"C:\Users\Christopher Thesner\Desktop\Spoon\");
            dir = d.GetDirectories();
            files = d.GetFiles();
但当我这样尝试时,路径存储在来自用户输入的变量中,它会抛出一个错误

DirectoryInfo d = new DirectoryInfo(path);
            dir = d.GetDirectories();
            files = d.GetFiles(path);
我试图从字符串中获取目录名,路径如下

directory = Path.GetDirectoryName(directory);
正如这里所建议的,但没有看。有什么想法吗?提前感谢

简单示例:

    private void Form1_Load(object sender, EventArgs e)
    {
        var path = Environment.CurrentDirectory;
        List<String> lines = new List<string>();
        DirectoryInfo d = new DirectoryInfo(path);
        var dir = d.GetDirectories();
        var files = d.GetFiles();
        lines.Add(String.Format("There are {0} directories in \"{1}\"", dir.Length, d.Name));
        lines.Add(String.Format("There are {0} files in \"{1}", files.Length, d.Name));
        foreach (var di in dir)
        {
            lines.Add(String.Format("There are {0} directories in \"{1}\"", dir.Length, d.Name));
            files = di.GetFiles();
            lines.Add(String.Format("There are {0} files in \"{1}", files.Length, d.Name));
        }
        textBox1.Lines = lines.ToArray();
    }

您试图在第二个代码段中给出GetFiles的路径,这导致了问题。你在第一个里面没有。删除该参数。@SamiKuhmonen非常感谢您指出这一点。我在这里坐了大约一个小时想弄明白。一双新鲜的眼睛总是有帮助的。谢谢你纠正我的白痴我知道我发帖太晚了!等我到了50岁,我就可以给别人的帖子添加评论了!