Carahsoft interview question

Fix the code below so that it compiles and works correctly. public bool FileExists(string filename, string directory) { DirectoryInfo dir = new DirectoryInfo(directory); foreach (FileInfo file in dir.GetFiles()) if (file.Name.ToLower() == filename) return true; foreach(DirectoryInfo subdir in dir.GetDirectories()) FileExists(subdir.FullName, filename); }

Interview Answer

Anonymous

7 Feb 2018

public bool FileExists(string filename, string directory) { DirectoryInfo dir = new DirectoryInfo(directory); foreach (FileInfo file in dir.GetFiles()) if (file.Name == filename) // looking for specific case, so case must match return true; foreach(DirectoryInfo subdir in dir.GetDirectories()) return FileExists(subdir.FullName, filename); // must put “return” to recursively call the function for each subdirectory return false; // must have a return statement when file does not exist }