Filename pattern matching

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
 
A

Ayende Rahien

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?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top