So I spent a couple days reading the web site and documentation and getting
all excited and I decided I'm ready to start coding. So I crack my knuckles
and whip up a quick sample app just to make sure I understand the basics...
and it doesn't work. :(
------------------------------------
import javax.swing.*;
import java.io.*;
import net.sourceforge.poi.poifs.filesystem.*;
/**
* Open an OLE CD file and count the entries.
*
* @author Corey Nelson
*
* Excuse the sloppy style. :)
*/
public class DemoApp1 extends JFrame {
public DemoApp1() {
// Get user to choose a file
JFileChooser fileChooser = new JFileChooser();
int retVal = fileChooser.showOpenDialog(this);
if(retVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
System.out.println(file);
try{
// Get an InputStream and POI Filesystem
from the file
InputStream in = new FileInputStream(file);
Filesystem fs = new Filesystem();
// Count the entries in root
DirectoryEntry root = fs.getRoot();
System.out.println(root.getName() + " " +
root.getEntryCount());
}
catch(IOException e) {
System.out.println(e);
}
}
}
public static void main (String args[]) {
DemoApp1 app = new DemoApp1();
System.exit(0);
}
}
------------------------------------
Here's some results:
C:\Documents and Settings\CoreyN\My Documents\NotebookTestFiles\5.nbk
Root Entry 0
C:\Documents and Settings\CoreyN\Book1.xls
Root Entry 0
C:\Documents and Settings\CoreyN\My Documents\todo.txt
Root Entry 0
------------------------------------
I'm sure I'm just doing something dumb or misunderstanding some fundamental
concept here. Shouldn't I be able to open and read an OLE Compound Document
this way? Shouldn't the Root have some entries? Shouldn't opening a none OLE
CD produce some sort or exception?
I'd appreciate it if someone could clue me in. Thanks.
Corey