[英]“Illegal characters in path” error using wildcards with Directory.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.