public static void ViewFile(String filename, bool printName) { if (printName) { StringBuilder flowerbox = new StringBuilder(); flowerbox.Append("."); for (int j = 0; j < filename.Length; j++) { flowerbox.Append("-"); } flowerbox.Append("."); Console.WriteLine(flowerbox); Console.WriteLine("|" + filename + "|"); Console.WriteLine(flowerbox); } try { POIFSViewable fs = (POIFSViewable) new POIFSFileSystem(File.OpenRead(filename)); IList strings = POIFSViewEngine.InspectViewable(fs, true, 0, " "); IEnumerator iter = strings.GetEnumerator(); while (iter.MoveNext()) { Console.Write(iter.Current); } } catch (IOException e) { Console.WriteLine(e.Message); } }
internal static void ProcessViewable(object viewable, bool drilldown, int indentLevel, String indentString, IList objects) { POIFSViewable inspected = (POIFSViewable)viewable; objects.Add(Indent(indentLevel, indentString, inspected.ShortDescription)); if (drilldown) { if (inspected is POIFSDocument) { ((ArrayList)objects).AddRange(InspectViewable("POIFSDocument content is too long so ignored", drilldown, indentLevel + 1, indentString)); return; } if (inspected.PreferArray) { Array data = inspected.ViewableArray; for (int j = 0; j < data.Length; j++) { ((ArrayList)objects).AddRange(InspectViewable(data.GetValue(j), drilldown, indentLevel + 1, indentString)); } } else { IEnumerator iter = inspected.ViewableIterator; while (iter.MoveNext()) { ((ArrayList)objects).AddRange(InspectViewable(iter.Current, drilldown, indentLevel + 1, indentString)); } } } }