c#Directory.GetFiles来自app root的文件结构

时间:2011-10-06 00:32:25

标签: c#

我有以下代码:

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

我知道我可以迭代生成的文件列表并逐个删除它,我想知道我是否可以直接过滤它。

1 个答案:

答案 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();