public override void OnExtracted([NotNull] FilePath file, [NotNull] Com.Drew.Metadata.Metadata metadata, [NotNull] string relativePath) { base.OnExtracted(file, metadata, relativePath); try { PrintWriter writer = null; try { writer = OpenWriter(file); // Build a list of all directories IList <Com.Drew.Metadata.Directory> directories = new AList <Com.Drew.Metadata.Directory>(); foreach (Com.Drew.Metadata.Directory directory in metadata.GetDirectories()) { directories.Add(directory); } // Sort them by name directories.Sort(new _IComparer_235()); // Write any errors if (metadata.HasErrors()) { foreach (Com.Drew.Metadata.Directory directory_1 in directories) { if (!directory_1.HasErrors()) { continue; } foreach (string error in directory_1.GetErrors()) { writer.Format("[ERROR: %s] %s\n", directory_1.GetName(), error); } } writer.Write("\n"); } // Write tag values for each directory foreach (Com.Drew.Metadata.Directory directory_2 in directories) { string directoryName = directory_2.GetName(); foreach (Tag tag in directory_2.GetTags()) { string tagName = tag.GetTagName(); string description = tag.GetDescription(); writer.Format("[%s - %s] %s = %s%n", directoryName, tag.GetTagTypeHex(), tagName, description); } if (directory_2.GetTagCount() != 0) { writer.Write('\n'); } } } finally { CloseWriter(writer); } } catch (IOException e) { Sharpen.Runtime.PrintStackTrace(e); } }
public virtual void WriteSVMLightFormat(PrintWriter writer) { foreach (RVFDatum <L, F> datum in this) { writer.Print(this.labelIndex.IndexOf(datum.Label())); ICounter <F> features = datum.AsFeaturesCounter(); foreach (F feature in features.KeySet()) { double count = features.GetCount(feature); writer.Format(Locale.English, " %s:%f", this.featureIndex.IndexOf(feature), count); } writer.Println(); } }