首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

什么是Delphi MatchesMask函数的C#等价物?

在C#中,Delphi的MatchesMask函数的等价物是使用System.IO.Path类的GetFileName方法。GetFileName方法可以从指定的路径中获取文件名,并且可以使用通配符进行匹配。

以下是一个示例代码:

代码语言:csharp
复制
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string path = @"C:\Users\user\Documents\file.txt";
        string searchPattern = "*.txt";

        if (Path.GetFileName(path).MatchesMask(searchPattern))
        {
            Console.WriteLine("The file matches the search pattern.");
        }
        else
        {
            Console.WriteLine("The file does not match the search pattern.");
        }
    }
}

public static class StringExtensions
{
    public static bool MatchesMask(this string filePath, string searchPattern)
    {
        return Path.GetFileName(filePath).Like(searchPattern);
    }

    public static bool Like(this string str, string pattern)
    {
        // 实现通配符匹配的代码
    }
}

在这个示例中,我们使用了Path.GetFileName方法从路径中获取文件名,并使用MatchesMask扩展方法来进行通配符匹配。MatchesMask方法使用了Like方法来实现通配符匹配。

需要注意的是,C#中没有内置的通配符匹配方法,因此需要自己实现Like方法。以下是一个简单的实现:

代码语言:csharp
复制
public static bool Like(this string str, string pattern)
{
    return new Regex(
        pattern
            .Replace(".", "\\.")
            .Replace("*", ".*")
            .Replace("?", ".")
    ).IsMatch(str);
}

这个实现使用了正则表达式来进行通配符匹配。其中,.*分别被替换为\..*被替换为.。然后使用Regex.IsMatch方法来进行匹配。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券