繁体   English   中英

用户输入路径出现GetFiles()错误

[英]GetFiles() error with user input path

我试图从控制台中用户输入获得的路径中获取目录中的所有文件。 但是我一直收到此错误'System.ArgumentException:'第二路径片段不能是驱动器或UNC名称'我已经看过了第二路径片段不能是驱动器或UNC名称-Create Subdirectory Error答案,其中指出了错误是因为路径中的驱动器名称,但这没有任何意义。 当我像这样测试代码时, 使用驱动器号对路径进行硬编码时,它将起作用。

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);

如此处建议的那样, 第二个路径片段也不能是驱动器或UNC名称-创建子目录错误,但不显示。 有任何想法吗? 提前致谢

简单的例子:

    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();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM