C# C从所选目录检索子目录
我正在试图找到一种从选定目录检索子文件夹的方法。我在代码中使用FolderBrowserDialog让所有用户选择程序将使用的根目录。但是我被困在如何从中获取子目录上。我想将这些子目录字符串名放在一个数组中,以便以后使用。我尝试在所选路径中使用Directory.getfiles,但这不会显示子目录。 非常感谢您的帮助!多谢各位C# C从所选目录检索子目录,c#,file,file-upload,directory,C#,File,File Upload,Directory,我正在试图找到一种从选定目录检索子文件夹的方法。我在代码中使用FolderBrowserDialog让所有用户选择程序将使用的根目录。但是我被困在如何从中获取子目录上。我想将这些子目录字符串名放在一个数组中,以便以后使用。我尝试在所选路径中使用Directory.getfiles,但这不会显示子目录。 非常感谢您的帮助!多谢各位 private void Folderselector_Click(object sender, EventArgs e) { FolderB
private void Folderselector_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
listView1.Items.Clear();
string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
foreach (string file in files)
{
string fileName = Path.GetFileNameWithoutExtension(file);
ListViewItem item = new ListViewItem(fileName);
item.Tag = file;
listView1.Items.Add(item);
}
}
}
像这样的
var dirs = new DirectoryInfo(path).GetDirectories("*",SearchOption.AllDirectories)
.Select(d => d.FullName)
.ToList();
如果您想要相对于根目录的目录名
var dirs = new DirectoryInfo(path).GetDirectories("*",SearchOption.AllDirectories)
.Select(d => d.FullName)
.Select(s => new Uri(path).MakeRelative(new Uri(s)).ToString())
.ToList();
关闭,但目录有一种不同的方法:
System.IO.Directory.GetDirectories(string rootDirectory);
将方法重载与SearchOption.AllDirectories一起使用
System.IO.Directory.GetDirectories(string rootDirectory);
使用递归是您的解决方案
List<string> dirsResult = new List<string>();
public void GetDirectories(string currentDirectory)
{
string[] directories = Directory.GetDirectories(currentDirectory);
foreach(var dir in directories)
{
dirsResult.Add(dir);
GetDirectories(dir);
}
}
我还没有测试过它,但类似的东西应该可以使用。使用Directory.GetDirectoriesyourRootPath;你能不能再运行一遍以获取子sbu目录?你不必手动操作,将SearchOption.AllDirectories传递给Directory.GetDirectories将为你完成这项操作,正如其他答案所说的那样。