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