[英]How to get a list of directories and sub directories C# WPF
您将如何从根目录中获得所有子目录及其子目录(直到没有子目录)的列表。
我当前的代码使用FolderBrowserDialog(WPF没有它,所以我必须从winforms中获取它),然后从那里尝试遍历目录。 到目前为止,我只能使它横向于1级深,例如
如果音乐目录设置为
\rock\metallica\ride the lightning
\rock\aerosmith\
\rock\something\
而用户选择\\ rock \\,则只会从aerosmith,某物和metallica而不是metallica的子目录中获取文件,而是绕行闪电。
private void btnAddTestFile_Click(object sender, RoutedEventArgs e)
{
string[] files;
FolderBrowserDialog dlg = new FolderBrowserDialog();
DialogResult result = dlg.ShowDialog();
if (result.ToString() == "OK")
{
InitializePropertyValues();
files = System.IO.Directory.GetFiles(dlg.SelectedPath, "*.mp3");
foreach (string file in files)
{
lstvTrackList.Items.Add(new TrackList{ ID = lstvTrackList.Items.Count.ToString(), TrackName = Regex.Match(file, @".*\\(.*).mp3").Groups[1].Value, TrackPath = file });
}
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(dlg.SelectedPath);
foreach (System.IO.DirectoryInfo d in di.GetDirectories())
{
files = System.IO.Directory.GetFiles(d.FullName, "*.mp3");
foreach (string file in files)
{
lstvTrackList.Items.Add(new TrackList{ ID = lstvTrackList.Items.Count.ToString(), TrackName = Regex.Match(file, @".*\\(.*).mp3").Groups[1].Value, TrackPath = file });
}
}
}
}
基本上,我试图做的是首先从根目录中添加所有松散文件,然后在根目录中获取目录列表并添加这些文件。
如果我知道如何从根目录开始爬网所有子目录,我想我可以弄清楚,但是我不太了解如何实现。
没有人有任何提示,技巧或示例代码,可让您指定根目录,然后对每个目录进行爬网(保留字符串数组),直到找不到更多子目录为止,这样我就可以从每个目录中抓取文件了?
要获取所有子目录,您必须将SearchOption作为第三个参数传递,该参数还将返回所有子目录。
Directory.GetFiles("","",SearchOption.AllDirectories);
SearchOption
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.