private static Task AddFilesToPackage(Package package, string path, string dataRootPath, string outputPath, List <string> ignoredFiles, CancellationToken token) { Task task = null; task = Task.Run(() => { if (!path.EndsWith(Path.DirectorySeparatorChar.ToString())) { path += Path.DirectorySeparatorChar; } AppController.Main.UpdateProgressLog("Enumerating files..."); var files = Directory.EnumerateFiles(path, DirectoryEnumerationOptions.Recursive | DirectoryEnumerationOptions.LargeCache, new DirectoryEnumerationFilters() { InclusionFilter = (f) => { return(!ignoredFiles.Any(x => IgnoreFile(f.FullPath, x))); } }).ToDictionary(k => k.Replace(dataRootPath, String.Empty), v => v); foreach (KeyValuePair <string, string> file in files) { if (token.IsCancellationRequested) { throw new TaskCanceledException(task); } FilesystemFileInfo fileInfo = FilesystemFileInfo.CreateFromEntry(file.Value, file.Key); package.Files.Add(fileInfo); } }, token); return(task); }
private static void AddFilesToPackage(Package package, string path, string dataRootPath, string outputPath, List <string> ignoredFiles) { if (!path.EndsWith(Path.DirectorySeparatorChar.ToString())) { path += Path.DirectorySeparatorChar; } var files = Directory.EnumerateFiles(path, DirectoryEnumerationOptions.Recursive | DirectoryEnumerationOptions.LargeCache, new DirectoryEnumerationFilters() { InclusionFilter = (f) => { return(!ignoredFiles.Any(x => IgnoreFile(f.FullPath, x))); } }).ToDictionary(k => k.Replace(dataRootPath, String.Empty), v => v); foreach (KeyValuePair <string, string> file in files) { DivinityApp.Log("Creating FilesystemFileInfo "); FilesystemFileInfo fileInfo = FilesystemFileInfo.CreateFromEntry(file.Value, file.Key); package.Files.Add(fileInfo); } }