Skip to main content
added in a one line alternative to recursive function
Source Link
Mario
  • 3.5k
  • 7
  • 43
  • 50

I think this is whatEdit: Ahh, new functionality with .NET 4 so you are looking fordon't have to do a recursive function (Thanks Matthew Brubaker)

IEnumerable<String> matchingFilePaths2 = System.IO.Directory.EnumerateFiles(@"C:\some folder to start in", filePatternToMatchOn, System.IO.SearchOption.AllDirectories); 




First Answer:

//get all files that have an underscore - searches all folders under the start folder List<String> matchingFilePaths = new List<string>(); String filePatternToMatchOn = "*_*"; FileUtilities.GetAllFilesMatchingPattern(@"C:\some folder to start in", ref matchingFilePaths, filePatternToMatchOn); 

...

public static void GetAllFilesMatchingPattern(String pathToGetFilesIn, ref List<String> fullFilePaths, String searchPattern) { //get all files in current directory that match the pattern String[] filePathsInCurrentDir = Directory.GetFiles(pathToGetFilesIn, searchPattern); foreach (String fullPath in filePathsInCurrentDir) { fullFilePaths.Add(fullPath); } //call this method recursively for all directories String[] directories = Directory.GetDirectories(pathToGetFilesIn); foreach (String path in directories) { GetAllFilesMatchingPattern(path, ref fullFilePaths, searchPattern); } } 

I think this is what you are looking for

//get all files that have an underscore - searches all folders under the start folder List<String> matchingFilePaths = new List<string>(); String filePatternToMatchOn = "*_*"; FileUtilities.GetAllFilesMatchingPattern(@"C:\some folder to start in", ref matchingFilePaths, filePatternToMatchOn); 

...

public static void GetAllFilesMatchingPattern(String pathToGetFilesIn, ref List<String> fullFilePaths, String searchPattern) { //get all files in current directory that match the pattern String[] filePathsInCurrentDir = Directory.GetFiles(pathToGetFilesIn, searchPattern); foreach (String fullPath in filePathsInCurrentDir) { fullFilePaths.Add(fullPath); } //call this method recursively for all directories String[] directories = Directory.GetDirectories(pathToGetFilesIn); foreach (String path in directories) { GetAllFilesMatchingPattern(path, ref fullFilePaths, searchPattern); } } 

Edit: Ahh, new functionality with .NET 4 so you don't have to do a recursive function (Thanks Matthew Brubaker)

IEnumerable<String> matchingFilePaths2 = System.IO.Directory.EnumerateFiles(@"C:\some folder to start in", filePatternToMatchOn, System.IO.SearchOption.AllDirectories); 




First Answer:

//get all files that have an underscore - searches all folders under the start folder List<String> matchingFilePaths = new List<string>(); String filePatternToMatchOn = "*_*"; FileUtilities.GetAllFilesMatchingPattern(@"C:\some folder to start in", ref matchingFilePaths, filePatternToMatchOn); 

...

public static void GetAllFilesMatchingPattern(String pathToGetFilesIn, ref List<String> fullFilePaths, String searchPattern) { //get all files in current directory that match the pattern String[] filePathsInCurrentDir = Directory.GetFiles(pathToGetFilesIn, searchPattern); foreach (String fullPath in filePathsInCurrentDir) { fullFilePaths.Add(fullPath); } //call this method recursively for all directories String[] directories = Directory.GetDirectories(pathToGetFilesIn); foreach (String path in directories) { GetAllFilesMatchingPattern(path, ref fullFilePaths, searchPattern); } } 
added 46 characters in body
Source Link
Mario
  • 3.5k
  • 7
  • 43
  • 50

I think this is what you are looking for

//get all files that have an underscore - searches all folders under the start folder List<String> matchingFilePaths = new List<string>(); String filePatternToMatchOn = "*_*"; FileUtilities.GetAllFilesMatchingPattern(@"C:\some folder to start in", ref matchingFilePaths, filePatternToMatchOn); 

...

public static void GetAllFilesMatchingPattern(String pathToGetFilesIn, ref List<String> fullFilePaths, String searchPattern) { //get all files in current directory that match the pattern String[] filePathsInCurrentDir = Directory.GetFiles(pathToGetFilesIn, searchPattern); foreach (String fullPath in filePathsInCurrentDir) { fullFilePaths.Add(fullPath); } //call this method recursively for all directories String[] directories = Directory.GetDirectories(pathToGetFilesIn); foreach (String path in directories) { GetAllFilesMatchingPattern(path, ref fullFilePaths, searchPattern); } } 

I think this is what you are looking for

//get all files that have an underscore List<String> matchingFilePaths = new List<string>(); String filePatternToMatchOn = "*_*"; FileUtilities.GetAllFilesMatchingPattern(@"C:\some folder to start in", ref matchingFilePaths, filePatternToMatchOn); 

...

public static void GetAllFilesMatchingPattern(String pathToGetFilesIn, ref List<String> fullFilePaths, String searchPattern) { //get all files in current directory that match the pattern String[] filePathsInCurrentDir = Directory.GetFiles(pathToGetFilesIn, searchPattern); foreach (String fullPath in filePathsInCurrentDir) { fullFilePaths.Add(fullPath); } //call this method recursively for all directories String[] directories = Directory.GetDirectories(pathToGetFilesIn); foreach (String path in directories) { GetAllFilesMatchingPattern(path, ref fullFilePaths, searchPattern); } } 

I think this is what you are looking for

//get all files that have an underscore - searches all folders under the start folder List<String> matchingFilePaths = new List<string>(); String filePatternToMatchOn = "*_*"; FileUtilities.GetAllFilesMatchingPattern(@"C:\some folder to start in", ref matchingFilePaths, filePatternToMatchOn); 

...

public static void GetAllFilesMatchingPattern(String pathToGetFilesIn, ref List<String> fullFilePaths, String searchPattern) { //get all files in current directory that match the pattern String[] filePathsInCurrentDir = Directory.GetFiles(pathToGetFilesIn, searchPattern); foreach (String fullPath in filePathsInCurrentDir) { fullFilePaths.Add(fullPath); } //call this method recursively for all directories String[] directories = Directory.GetDirectories(pathToGetFilesIn); foreach (String path in directories) { GetAllFilesMatchingPattern(path, ref fullFilePaths, searchPattern); } } 
added another variable to highlight the pattern match
Source Link
Mario
  • 3.5k
  • 7
  • 43
  • 50

I think this is what you are looking for

//get all files that have an underscore List<String> matchingFilePaths = new List<string>(); CustomLibrary.String filePatternToMatchOn = "*_*"; FileUtilities.GetAllFilesMatchingPattern(@"C:\some folder to start in", ref matchingFilePaths, "*_*"filePatternToMatchOn); 

...

public static void GetAllFilesMatchingPattern(String pathToGetFilesIn, ref List<String> fullFilePaths, String searchPattern) { //get all files in current directory that match the pattern String[] filePathsInCurrentDir = Directory.GetFiles(pathToGetFilesIn, searchPattern); foreach (String fullPath in filePathsInCurrentDir) { fullFilePaths.Add(fullPath); } //call this method recursively for all directories String[] directories = Directory.GetDirectories(pathToGetFilesIn); foreach (String path in directories) { GetAllFilesMatchingPattern(path, ref fullFilePaths, searchPattern); } } 

I think this is what you are looking for

//get all files that have an underscore List<String> matchingFilePaths = new List<string>(); CustomLibrary.FileUtilities.GetAllFilesMatchingPattern(@"C:\some folder to start in", ref matchingFilePaths, "*_*"); 

...

public static void GetAllFilesMatchingPattern(String pathToGetFilesIn, ref List<String> fullFilePaths, String searchPattern) { //get all files in current directory that match the pattern String[] filePathsInCurrentDir = Directory.GetFiles(pathToGetFilesIn, searchPattern); foreach (String fullPath in filePathsInCurrentDir) { fullFilePaths.Add(fullPath); } //call this method recursively for all directories String[] directories = Directory.GetDirectories(pathToGetFilesIn); foreach (String path in directories) { GetAllFilesMatchingPattern(path, ref fullFilePaths, searchPattern); } } 

I think this is what you are looking for

//get all files that have an underscore List<String> matchingFilePaths = new List<string>(); String filePatternToMatchOn = "*_*"; FileUtilities.GetAllFilesMatchingPattern(@"C:\some folder to start in", ref matchingFilePaths, filePatternToMatchOn); 

...

public static void GetAllFilesMatchingPattern(String pathToGetFilesIn, ref List<String> fullFilePaths, String searchPattern) { //get all files in current directory that match the pattern String[] filePathsInCurrentDir = Directory.GetFiles(pathToGetFilesIn, searchPattern); foreach (String fullPath in filePathsInCurrentDir) { fullFilePaths.Add(fullPath); } //call this method recursively for all directories String[] directories = Directory.GetDirectories(pathToGetFilesIn); foreach (String path in directories) { GetAllFilesMatchingPattern(path, ref fullFilePaths, searchPattern); } } 
Source Link
Mario
  • 3.5k
  • 7
  • 43
  • 50
Loading