/// <summary> /// Stage multiple files for use by crash reporter /// </summary> /// <param name="FileType">The type of the staged file</param> /// <param name="InputDir">Location of the input directory</param> /// <param name="Option">Whether to stage all subdirectories or just the top-level directory</param> public void StageCrashReporterFiles(StagedFileType FileType, DirectoryReference InputDir, StageFilesSearch Option) { StageCrashReporterFiles(FileType, InputDir, Option, new StagedDirectoryReference(InputDir.MakeRelativeTo(LocalRoot))); }
/// <summary> /// Stage multiple files for use by crash reporter /// </summary> /// <param name="FileType">The type of the staged file</param> /// <param name="InputDir">Location of the input directory</param> /// <param name="Option">Whether to stage all subdirectories or just the top-level directory</param> /// <param name="OutputDir">Location of the output directory within the staging folder</param> public void StageCrashReporterFiles(StagedFileType FileType, DirectoryReference InputDir, StageFilesSearch Option, StagedDirectoryReference OutputDir) { List <FileReference> InputFiles = FindFilesToStage(InputDir, Option); foreach (FileReference InputFile in InputFiles) { StagedFileReference StagedFile = StagedFileReference.Combine(OutputDir, InputFile.MakeRelativeTo(InputDir)); StageCrashReporterFile(FileType, InputFile, StagedFile); } }
/// <summary> /// Stage multiple files /// </summary> /// <param name="FileType">The type for the staged files</param> /// <param name="InputDir">Input directory</param> /// <param name="InputFiles">List of input files</param> public void StageFiles(StagedFileType FileType, DirectoryReference InputDir, string Pattern, StageFilesSearch Option) { List <FileReference> InputFiles = FindFilesToStage(InputDir, Pattern, Option); foreach (FileReference InputFile in InputFiles) { StageFile(FileType, InputFile); } }
/// <summary> /// Stage multiple files /// </summary> /// <param name="FileType">The type for the staged files</param> /// <param name="InputDir">Input directory</param> /// <param name="Option">Whether to stage all subdirectories or just the top-level directory</param> /// <param name="OutputDir">Base directory for output files</param> public void StageFiles(StagedFileType FileType, DirectoryReference InputDir, StageFilesSearch Option, StagedDirectoryReference OutputDir) { StageFiles(FileType, InputDir, "*", Option, OutputDir); }
/// <summary> /// Finds files to stage under a given base directory. /// </summary> /// <param name="BaseDir">The directory to search under</param> /// <param name="Pattern">Pattern for files to match</param> /// <param name="ExcludePatterns">Patterns to exclude from staging</param> /// <param name="Option">Options for the search</param> /// <param name="Files">List to receive the enumerated files</param> private void FindFilesToStageInternal(DirectoryReference BaseDir, string Pattern, StageFilesSearch Option, List <FileReference> Files) { // Enumerate all the files in this directory Files.AddRange(DirectoryReference.EnumerateFiles(BaseDir, Pattern)); // Recurse through subdirectories if necessary if (Option == StageFilesSearch.AllDirectories) { foreach (DirectoryReference SubDir in DirectoryReference.EnumerateDirectories(BaseDir)) { FileSystemName Name = new FileSystemName(SubDir); if (!RestrictedFolderNames.Contains(Name)) { FindFilesToStageInternal(SubDir, Pattern, Option, Files); } } } }
/// <summary> /// Finds files to stage under a given base directory. /// </summary> /// <param name="BaseDir">The directory to search under</param> /// <param name="Pattern">Pattern for files to match</param> /// <param name="Option">Options for the search</param> /// <returns>List of files to be staged</returns> public List <FileReference> FindFilesToStage(DirectoryReference BaseDir, string Pattern, StageFilesSearch Option) { List <FileReference> Files = new List <FileReference>(); FindFilesToStageInternal(BaseDir, Pattern, Option, Files); return(Files); }
/// <summary> /// Finds files to stage under a given base directory. /// </summary> /// <param name="BaseDir">The directory to search under</param> /// <param name="Option">Options for the search</param> /// <returns>List of files to be staged</returns> public List <FileReference> FindFilesToStage(DirectoryReference BaseDir, StageFilesSearch Option) { return(FindFilesToStage(BaseDir, "*", Option)); }