快速提问,我已将所有目录和子目录从目录列到列表框但我需要从列表框中删除一个子目录。
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\\")
但不知道如何
答案 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
返回的字符串可能会有所不同,因此请根据需要进行调整。