示例#1
0
        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);
            }
        }
示例#2
0
         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));
                     }
                 }
             }
         }