public static ProfileEntry Add(this Collections.INamedCollection <ProfileEntry> entries, int lineNumber, string name, string value = null) { var item = new ProfileEntry(lineNumber, name, value); entries.Add(item); return(item); }
private void DeployEntry(ProfileEntry entry, IDictionary<string, string> parameters) { if(entry == null) throw new ArgumentNullException("entry"); var filePath = this.Format(entry.Name, parameters).Replace('/', Path.DirectorySeparatorChar).Trim(); var fileName = string.IsNullOrWhiteSpace(entry.Value) ? Path.GetFileName(filePath) : entry.Value; if(fileName.Contains("*") || fileName.Contains("?")) { var directory = new DirectoryInfo(Path.GetDirectoryName(filePath)); if(!directory.Exists) { _terminal.Write(TerminalColor.Magenta, ResourceUtility.GetString("Text.Warn")); _terminal.WriteLine(TerminalColor.Yellow, ResourceUtility.GetString("Text.DirectoryNotExists", directory.FullName)); return; } var files = directory.EnumerateFiles(fileName); foreach(var file in files) { //执行文件复制 this.CopyFile(file.FullName, Path.Combine(this.CurrentDirectory, file.Name)); //累加文件复制成功计数器 Interlocked.Increment(ref _fileCountOfSucced); } return; } if(!File.Exists(filePath)) { //累加文件复制失败计数器 Interlocked.Increment(ref _fileCountOfFailed); _terminal.Write(TerminalColor.Magenta, ResourceUtility.GetString("Text.Warn")); _terminal.WriteLine(TerminalColor.DarkYellow, ResourceUtility.GetString("Text.FileNotExists", filePath)); return; } //执行文件复制 this.CopyFile(filePath, Path.Combine(this.CurrentDirectory, fileName)); //累加文件复制成计数器 Interlocked.Increment(ref _fileCountOfSucced); }