private static Regex GlobToRegex(string glob, bool ignoreCase)
{
StringBuilder builder = new StringBuilder();
builder.Append("^");
foreach (char ch in glob)
{
if (ch == '*')
{
builder.Append(".*");
}
else if (ch == '?')
{
builder.Append(".");
}
else
{
builder.Append(Regex.Escape(new String(ch, 1)));
}
}
builder.Append("$");
return new Regex(builder.ToString(), ignoreCase ? RegexOptions.IgnoreCase : RegexOptions.None);
}