您如何从根目录中获取所有子目录及其子目录的列表(直到没有剩余子目录)。
我当前的代码使用 FolderBrowserDialog(WPF 没有,所以我必须从 winforms 中获取它),并从那里尝试横向目录。到目前为止,我只能使其横向 1 级深,如
如果音乐目录设置为
\rock\metallica\ride the lightning
\rock\aerosmith\
\rock\something\
并且用户选择\rock\,它只会从aerosmith、something 和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 });
}
}
}
}
基本上我尝试做的是首先从根目录添加所有松散文件,然后获取根目录中的目录列表并添加这些文件。
如果我知道如何从根目录开始爬取所有子目录,我想我可以弄清楚,但我不太明白我将如何实现这一点。
有没有人有任何提示、提示或示例代码允许您指定一个根目录,然后爬取每个目录(保留一个字符串数组),直到找不到更多子目录,这样我就可以从每个目录中抓取文件?