You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2010/12/28 08:16:12 UTC
svn commit: r1053274 -
/poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSLister.java
Author: nick
Date: Tue Dec 28 07:16:12 2010
New Revision: 1053274
URL: http://svn.apache.org/viewvc?rev=1053274&view=rev
Log:
Allow POIFSLister to switch between the two different POIFS implementations when listing
Modified:
poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSLister.java
Modified: poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSLister.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSLister.java?rev=1053274&r1=1053273&r2=1053274&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSLister.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSLister.java Tue Dec 28 07:16:12 2010
@@ -17,12 +17,15 @@
package org.apache.poi.poifs.dev;
+import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import org.apache.poi.poifs.filesystem.DirectoryNode;
import org.apache.poi.poifs.filesystem.DocumentNode;
+import org.apache.poi.poifs.filesystem.Entry;
+import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
/**
@@ -31,59 +34,71 @@ import org.apache.poi.poifs.filesystem.P
* Much simpler than {@link POIFSViewer}
*/
public class POIFSLister {
- /**
- * Display the entries of multiple POIFS files
- *
- * @param args the names of the files to be displayed
- */
- public static void main(final String args[]) throws IOException {
- if (args.length == 0) {
- System.err.println("Must specify at least one file to view");
- System.exit(1);
- }
-
- boolean withSizes = false;
- for (int j = 0; j < args.length; j++) {
- if (args[j].equalsIgnoreCase("-size") || args[j].equalsIgnoreCase("-sizes")) {
- withSizes = true;
- } else {
- viewFile(args[j], withSizes);
- }
- }
- }
-
- public static void viewFile(final String filename, boolean withSizes) throws IOException {
- POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filename));
- displayDirectory(fs.getRoot(), "", withSizes);
- }
-
- public static void displayDirectory(DirectoryNode dir, String indent, boolean withSizes) {
- System.out.println(indent + dir.getName() + " -");
- String newIndent = indent + " ";
-
- boolean hadChildren = false;
- for (Iterator it = dir.getEntries(); it.hasNext();) {
- hadChildren = true;
- Object entry = it.next();
- if (entry instanceof DirectoryNode) {
- displayDirectory((DirectoryNode) entry, newIndent, withSizes);
- } else {
- DocumentNode doc = (DocumentNode) entry;
- String name = doc.getName();
- String size = "";
- if (name.charAt(0) < 10) {
- String altname = "(0x0" + (int) name.charAt(0) + ")" + name.substring(1);
- name = name.substring(1) + " <" + altname + ">";
- }
- if (withSizes) {
- size = " [" + doc.getSize() + " / 0x" + Integer.toHexString(doc.getSize())
- + "]";
- }
- System.out.println(newIndent + name + size);
- }
- }
- if (!hadChildren) {
- System.out.println(newIndent + "(no children)");
- }
- }
+ /**
+ * Display the entries of multiple POIFS files
+ *
+ * @param args the names of the files to be displayed
+ */
+ public static void main(final String args[]) throws IOException {
+ if (args.length == 0) {
+ System.err.println("Must specify at least one file to view");
+ System.exit(1);
+ }
+
+ boolean withSizes = false;
+ boolean newPOIFS = true;
+ for (int j = 0; j < args.length; j++) {
+ if (args[j].equalsIgnoreCase("-size") || args[j].equalsIgnoreCase("-sizes")) {
+ withSizes = true;
+ } else if (args[j].equalsIgnoreCase("-old") || args[j].equalsIgnoreCase("-old-poifs")) {
+ newPOIFS = false;
+ } else {
+ if(newPOIFS) {
+ viewFile(args[j], withSizes);
+ } else {
+ viewFileOld(args[j], withSizes);
+ }
+ }
+ }
+ }
+
+ public static void viewFile(final String filename, boolean withSizes) throws IOException {
+ NPOIFSFileSystem fs = new NPOIFSFileSystem(new File(filename));
+ displayDirectory(fs.getRoot(), "", withSizes);
+ }
+
+ public static void viewFileOld(final String filename, boolean withSizes) throws IOException {
+ POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filename));
+ displayDirectory(fs.getRoot(), "", withSizes);
+ }
+
+ public static void displayDirectory(DirectoryNode dir, String indent, boolean withSizes) {
+ System.out.println(indent + dir.getName() + " -");
+ String newIndent = indent + " ";
+
+ boolean hadChildren = false;
+ for(Iterator<Entry> it = dir.getEntries(); it.hasNext();) {
+ hadChildren = true;
+ Entry entry = it.next();
+ if (entry instanceof DirectoryNode) {
+ displayDirectory((DirectoryNode) entry, newIndent, withSizes);
+ } else {
+ DocumentNode doc = (DocumentNode) entry;
+ String name = doc.getName();
+ String size = "";
+ if (name.charAt(0) < 10) {
+ String altname = "(0x0" + (int) name.charAt(0) + ")" + name.substring(1);
+ name = name.substring(1) + " <" + altname + ">";
+ }
+ if (withSizes) {
+ size = " [" + doc.getSize() + " / 0x" +
+ Integer.toHexString(doc.getSize()) + "]";
+ }
+ System.out.println(newIndent + name + size);
+ }
+ }
+ if (!hadChildren) {
+ System.out.println(newIndent + "(no children)");
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org