I'm working on a new application to manage ID3 tags in my huge MP3 database. Besides the actual ID3 editing, I need to make sure the scanner runs as fast as possible. I'm testing some methods below and I'll post results later! static public string[] GetAllFileNames(string baseDir) { // Store results in the file results list. List<string> fileResults = new List<string>(); // Store a stack of our directories. Stack<string> directoryStack = new Stack<string>(); directoryStack.Push(baseDir); // While there are directories to process and we don't have too many results while (directoryStack.Count > 0 && fileResults.Count < 1000) { string currentDir = directoryStack.Pop(); // Add all files at this directory. foreach (string fileName in Directory.GetFiles(currentDir, "*.*")) { fileResults.Add(fileName); } // Add all directories at this directory. foreach (string directoryName in Directory.GetDirectories(currentDir)) { directoryStack.Push(directoryName); } } return fileResults.ToArray(); }
I'm working on a new application to manage ID3 tags in my huge MP3 database. Besides the actual ID3 editing, I need to make sure the scanner runs as fast as possible. I'm testing some methods below and I'll post results later!
static public string[] GetAllFileNames(string baseDir) { // Store results in the file results list. List<string> fileResults = new List<string>(); // Store a stack of our directories. Stack<string> directoryStack = new Stack<string>(); directoryStack.Push(baseDir); // While there are directories to process and we don't have too many results while (directoryStack.Count > 0 && fileResults.Count < 1000) { string currentDir = directoryStack.Pop(); // Add all files at this directory. foreach (string fileName in Directory.GetFiles(currentDir, "*.*")) { fileResults.Add(fileName); } // Add all directories at this directory. foreach (string directoryName in Directory.GetDirectories(currentDir)) { directoryStack.Push(directoryName); } } return fileResults.ToArray(); }