我有以下代码:
string root = Path.GetDirectoryName(Application.ExecutablePath);
List<string> FullFileList = Directory.GetFiles(root, "*.*",
SearchOption.AllDirectories).Where(name =>
{
return !(name.EndsWith("dmp") || name.EndsWith("jpg"));
}).ToList();
现在这个效果非常好,但是带有它的文件名很长。 有没有办法可以把路径直到根?但仍显示所有子文件夹?
Root = C:\ Users \\ Desktop \ Test \
但代码将从C返回整个路径: 虽然我更愿意,我可以直接拿出根位。但仍保留文件结构。
例如 C:\用户\\桌面\测试\喜\你好\ files.txt 会回来的 \喜\你好\ files.txt
我知道我可以迭代生成的文件列表并逐个删除它,我想知道我是否可以直接过滤它。
答案 0 :(得分:3)
使用LINQ的力量:
string root = Path.GetDirectoryName(Application.ExecutablePath);
List<string> FullFileList = Directory.GetFiles(root, "*.*", SearchOption.AllDirectories)
.Where(name =>
{
return !(name.EndsWith("dmp") || name.EndsWith("jpg"));
})
.Select(file => file.Replace(root, "")
.ToList();