diff --git a/src/java/org/apache/poi/poifs/filesystem/DirectoryEntry.java b/src/java/org/apache/poi/poifs/filesystem/DirectoryEntry.java index 135a2ba4e..a85e7e9cb 100644 --- a/src/java/org/apache/poi/poifs/filesystem/DirectoryEntry.java +++ b/src/java/org/apache/poi/poifs/filesystem/DirectoryEntry.java @@ -59,6 +59,8 @@ import java.io.*; import java.util.*; +import org.apache.poi.hpsf.ClassID; + /** * This interface defines methods specific to Directory objects * managed by a Filesystem instance. @@ -160,5 +162,20 @@ public interface DirectoryEntry public DirectoryEntry createDirectory(final String name) throws IOException; + + /** + * Gets the storage clsid of the directory entry + * + * @return storage Class ID + */ + public ClassID getStorageClsid(); + + /** + * Sets the storage clsid for the directory entry + * + * @param clsidStorage storage Class ID + */ + public void setStorageClsid(ClassID clsidStorage); + } // end public interface DirectoryEntry diff --git a/src/java/org/apache/poi/poifs/filesystem/DirectoryNode.java b/src/java/org/apache/poi/poifs/filesystem/DirectoryNode.java index d7c670c25..feeb74771 100644 --- a/src/java/org/apache/poi/poifs/filesystem/DirectoryNode.java +++ b/src/java/org/apache/poi/poifs/filesystem/DirectoryNode.java @@ -59,6 +59,7 @@ import java.io.*; import java.util.*; +import org.apache.poi.hpsf.ClassID; import org.apache.poi.poifs.dev.POIFSViewable; import org.apache.poi.poifs.property.DirectoryProperty; import org.apache.poi.poifs.property.DocumentProperty; @@ -346,6 +347,26 @@ public class DirectoryNode return rval; } + /** + * Gets the storage clsid of the directory entry + * + * @return storage Class ID + */ + public ClassID getStorageClsid() + { + return getProperty().getStorageClsid(); + } + + /** + * Sets the storage clsid for the directory entry + * + * @param clsidStorage storage Class ID + */ + public void setStorageClsid(ClassID clsidStorage) + { + getProperty().setStorageClsid(clsidStorage); + } + /* ********** END implementation of DirectoryEntry ********** */ /* ********** START implementation of Entry ********** */ diff --git a/src/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java b/src/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java index 3d173aa46..3a62e3e1f 100644 --- a/src/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java +++ b/src/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java @@ -423,6 +423,8 @@ public class POIFSFileSystem DirectoryNode new_dir = ( DirectoryNode ) parent.createDirectory(name); + new_dir.setStorageClsid( property.getStorageClsid() ); + processProperties( small_blocks, big_blocks, (( DirectoryProperty ) property).getChildren(), new_dir);