C# Directory.Enumerate文件,带“枚举”;特别";过滤器

C# Directory.Enumerate文件,带“枚举”;特别";过滤器,c#,.net,directory,file-extension,C#,.net,Directory,File Extension,我需要过滤目录中的一些文件。我必须用不同的扩展名过滤不同类型的文件,但其中一个是“?b”。例子 29389.99b或382802.03b。对于其他文件,它可以很好地工作,但我如何才能过滤它? 我正在使用 var files = Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".??b") || s.EndsWith(".in") || s.EndsW

我需要过滤目录中的一些文件。我必须用不同的扩展名过滤不同类型的文件,但其中一个是“?b”。例子 29389.99b或382802.03b。对于其他文件,它可以很好地工作,但我如何才能过滤它? 我正在使用

var files = Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories)
    .Where(s => s.EndsWith(".??b") || s.EndsWith(".in") || s.EndsWith(".txt"));

谢谢

您可以使用正则表达式解决它。下面的代码可以帮助您

var files = Directory.EnumerateDirectories(path).Where(s => Regex.IsMatch(s, @"(.*)\.+.{2}b$"));

您可以使用正则表达式来解决它。下面的代码可以帮助您

var files = Directory.EnumerateDirectories(path).Where(s => Regex.IsMatch(s, @"(.*)\.+.{2}b$"));

检查分机长度和最后一个字母

var files = Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories)
    .Where(s =>
    {
        string ext = Path.GetExtension(s);
        return ext.Length == 4 && ext.EndsWith("b")
            || s.EndsWith(".in")
            || s.EndsWith(".txt");
    });

检查分机长度和最后一个字母

var files = Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories)
    .Where(s =>
    {
        string ext = Path.GetExtension(s);
        return ext.Length == 4 && ext.EndsWith("b")
            || s.EndsWith(".in")
            || s.EndsWith(".txt");
    });

查看这篇文章,并在下面的
目录上进行简单的google搜索。EnumerateFiles()方法
还可以查看是否有一个
s.Contains
方法可用于lambda语句。您还可以查看类似的内容,例如
var resultFileNames=(来自新DirectoryInfo中的fileInfo(@path).GetFiles(“.b”)选择fileInfo.Name).ToList();
看看这篇文章,并在下面的
目录.EnumerateFiles()上进行简单的谷歌搜索方法
还可以查看是否存在可以在lambda语句上使用的
s.Contains
方法。您还可以查看类似的内容,例如
var resultFileNames=(从新DirectoryInfo(@path.GetFiles(“.b”)中的fileInfo选择fileInfo.Name)。ToList();
\w
不匹配,例如,
-
。模式可能更简单:
@“\…b$”
在.net 4.5项目上测试的代码。代码正在运行。
\w
模式不包括所有允许的路径字符。是的,这是真的。我更正了表达式。现在,“.”模式包括所有允许的路径字符。
\w
不匹配,例如,
-
。模式可能简单得多:
@\…b$”
在.net 4.5项目上测试的代码。代码正在运行。
\w
模式不包括所有允许的路径字符。是的,这是真的。我更正了表达式。现在,“.”模式包括所有允许的路径字符。