Reputation: 121
I need to get list of files on some drive with paths that matches specific pattern, for example FA\d\d\d\d.xml where \d is digit (0,1,2..9). So files can have names like FA5423.xml.
What is the most efficient name to do this?
Upvotes: 10
Views: 22875
Reputation: 2863
Are you using C# 3?
Regex reg = new Regex(@"^FA[0-9]{4}\.xml$");
var files = Directory.GetFiles(yourPath, "*.xml").Where(path => reg.IsMatch(path));
Upvotes: 22
Reputation: 185862
Use the Directory API to find FA????.xml
, and run the resulting list through a regex filter:
var fa = from f in Directory.GetFiles("FA????.xml")
where Regex.Match(f, "FA\d\d\d\d\.xml")
select f;
Upvotes: 2
Reputation: 82096
You could do something like:
System.IO.Directory.GetFiles(@"C:\", "FA????.xml", SearchOption.AllDirectories);
Then from your results just iterate over them and verify them against your regex i.e. that the ?
characters in the name are all numbers
Upvotes: 6