public static IEnumerable <string> GetExistingMediaFiles(this BaseTask baseTask, string buildConfiguration) { var buildConfigAssetDir = baseTask.GetBuildConfigurationAssetDir(buildConfiguration); try { var files = Directory.EnumerateFiles(buildConfigAssetDir, "*.png", SearchOption.AllDirectories); if (baseTask.IsVerbose()) { if (files.Any()) { baseTask.LogVerbose("{0} png files found in resources folder {1}", files.Count(), buildConfigAssetDir); foreach (var file in files) { baseTask.LogDebug("Media file found {0}", file); } } else { baseTask.LogVerbose("No files found in resources folder {0}", buildConfigAssetDir); } } return(files); } catch (Exception ex) { baseTask.Log.LogErrorFromException(ex); } return(null); }
public static string FindTopFileInProjectDir(this BaseTask baseTask, string fileToFind) { string filePath = String.Empty; try { baseTask.LogVerbose($"Searching for config file {fileToFind}"); var currentDirectoryInfo = new DirectoryInfo(baseTask.ProjectDir); if (currentDirectoryInfo == null) { baseTask.Log.LogError($"Directory {baseTask.ProjectDir} is null"); } do { var fileExistenceToTest = Path.Combine(currentDirectoryInfo.FullName, fileToFind); //baseTask.LogVerbose($"Testing for file {fileExistenceToTest}"); if (File.Exists(fileExistenceToTest)) { //baseTask.LogVerbose($"File exists at {fileExistenceToTest}"); filePath = fileExistenceToTest; } if (currentDirectoryInfo.Parent == null) { break; } currentDirectoryInfo = currentDirectoryInfo.Parent; } while (currentDirectoryInfo != null); if (!String.IsNullOrEmpty(filePath)) { baseTask.LogInformation($"Selecting {fileToFind} from {filePath}"); } else { baseTask.LogDebug($"Did not find file {fileToFind} in path {baseTask.ProjectDir}"); } } catch (Exception e) { baseTask.Log.LogError($"Exception reading files {e.Message}"); } return(filePath); }