删除子目录而不知道目录C#

时间:2017-07-23 02:23:13

标签: c#

快速提问,我已将所有目录和子目录从目录列到列表框但我需要从列表框中删除一个子目录。

listBox1.Items.AddRange(Directory.GetDirectories("C:\\root\\", "*", SearchOption.TopDirectoryOnly));

我的问题是我不知道原点路径

C:\\root\\UNKNOW\\path_to_remove_from_listbox\\

我知道我需要做那样的事情:

listbox1.items.remove("C:\\root\\" + random param + "\\path_to_remove_from_listbox\\")

但不知道如何

1 个答案:

答案 0 :(得分:0)

在使用Linq添加之前过滤掉它们怎么样?

string dirRoot = "C:\\root\\";
string dirNameToIgnore = "path_to_remove_from_listbox\\";
var dirList = Directory.GetDirectories(dirRoot, "*", SearchOption.TopDirectoryOnly)
                       .Where(s => s.StartsWith(dirRoot) 
                                    && !s.EndsWith(dirNameToIgnore))
                       .ToList();
listBox1.Items.AddRange(dirList);

它的基本功能是使用GetDirectories查找目录路径,并仅选择以dirRoot开头并且不以dirNameToIgnore结尾的路径。

请注意,GetDirectories返回的字符串可能会有所不同,因此请根据需要进行调整。