Filename pattern matching

  • Thread starter Thread starter Sea Sharper
  • Start date Start date
S

Sea Sharper

Hi,

C#, from a FileSystemWatcher I would like to catch all files with a *.*
filter but then inside the event handler compare against a list of wildcards
(eg '*.abc;*.def')

Is there anywhere inside the Framework where I can do something like

Pattern x = new Pattern("*.abc");
if ( x.Matches(strFilename) )
{
//do something
}

Obviously I could just assume the file extensions were being used (and use
Path.GetExtension accordingly), but if a wildcard such as 'xyz??.*' is used
then I havent a hope.

Hope you can help, thanks

BTW:
The Regex syntax is different from filename
wildcards.

I could write a conversion from filename wildcard to regex syntax (eg. ? to
..?) but it would be fragile to change and possibly buggy.

Surely there must a simple way of doing this?

Thanks for the help

p.s. If you cannot help me then you force me to write new code of my own!!

Sea
 
Sea Sharper said:
Hi,

C#, from a FileSystemWatcher I would like to catch all files with a *.*
filter but then inside the event handler compare against a list of wildcards
(eg '*.abc;*.def')

Is there anywhere inside the Framework where I can do something like

Pattern x = new Pattern("*.abc");
if ( x.Matches(strFilename) )
{
//do something
}

class FilePattern
{
private string Extentions;
public FilePattern(string [] Extentions)
{
this.Extentions = Extentions;
}
public bool IsMatch(string FileName)
{
foreach(string Ext in Extentions)
{
if (Path.GetExtention(FileName)==Ext)
return true;
}
return false;
}
}
Obviously I could just assume the file extensions were being used (and use
Path.GetExtension accordingly), but if a wildcard such as 'xyz??.*' is used
then I havent a hope.

Hope you can help, thanks

BTW:
The Regex syntax is different from filename
wildcards.

I could write a conversion from filename wildcard to regex syntax (eg. ? to
.?) but it would be fragile to change and possibly buggy.

Surely there must a simple way of doing this?

Thanks for the help

p.s. If you cannot help me then you force me to write new code of my own!!

What is the problem in that?
 
Back
Top