org.apache.poi.poifs.filesystem

## Class EntryUtils

- java.lang.Object
- - org.apache.poi.poifs.filesystem.EntryUtils

-     @Internal
      public final class EntryUtils
      extends java.lang.Object

- - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | `areDirectoriesIdentical(DirectoryEntry dirA, DirectoryEntry dirB)` Checks to see if the two Directories hold the same contents.
    `static boolean` | `areDocumentsIdentical(DocumentEntry docA, DocumentEntry docB)` Compares two `DocumentEntry` instances of a POI file system.
    `static void` | `copyNodeRecursively(Entry entry, DirectoryEntry target)` Copies an Entry into a target POIFS directory, recursively
    `static void` | `copyNodes(DirectoryEntry sourceRoot, DirectoryEntry targetRoot)` Copies all the nodes from one POIFS Directory to another
    `static void` | `copyNodes(POIFSFileSystem source, POIFSFileSystem target)` Copies all nodes from one POIFS to the other
    `static void` | `copyNodes(POIFSFileSystem source, POIFSFileSystem target, java.util.List<java.lang.String> excepts)` Copies nodes from one POIFS to the other, minus the excepts.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### copyNodeRecursively

          @Internal
          public static void copyNodeRecursively(Entry entry,
                                                           DirectoryEntry target)
                                                    throws java.io.IOException

      Copies an Entry into a target POIFS directory, recursively
      Throws:
        `java.io.IOException`

    - #### copyNodes

          public static void copyNodes(DirectoryEntry sourceRoot,
                                       DirectoryEntry targetRoot)
                                throws java.io.IOException

      Copies all the nodes from one POIFS Directory to another
      Parameters:
        `sourceRoot` - is the source Directory to copy from
        `targetRoot` - is the target Directory to copy to
      Throws:
        `java.io.IOException`

    - #### copyNodes

          public static void copyNodes(POIFSFileSystem source,
                                       POIFSFileSystem target)
                                throws java.io.IOException

      Copies all nodes from one POIFS to the other
      Parameters:
        `source` - is the source POIFS to copy from
        `target` - is the target POIFS to copy to
      Throws:
        `java.io.IOException`

    - #### copyNodes

          public static void copyNodes(POIFSFileSystem source,
                                       POIFSFileSystem target,
                                       java.util.List<java.lang.String> excepts)
                                throws java.io.IOException

      Copies nodes from one POIFS to the other, minus the excepts. This delegates the filtering work to `FilteringDirectoryNode`, so excepts can be of the form "NodeToExclude" or "FilteringDirectory/ExcludedChildNode"
      Parameters:
        `source` - is the source POIFS to copy from
        `target` - is the target POIFS to copy to
        `excepts` - is a list of Entry Names to be excluded from the copy
      Throws:
        `java.io.IOException`

    - #### areDirectoriesIdentical

          public static boolean areDirectoriesIdentical(DirectoryEntry dirA,
                                                        DirectoryEntry dirB)

      Checks to see if the two Directories hold the same contents. For this to be true, they must have entries with the same names, no entries in one but not the other, and the size+contents of each entry must match, and they must share names. To exclude certain parts of the Directory from being checked, use a `FilteringDirectoryNode`

    - #### areDocumentsIdentical

          public static boolean areDocumentsIdentical(DocumentEntry docA,
                                                      DocumentEntry docB)
                                               throws java.io.IOException

      Compares two `DocumentEntry` instances of a POI file system. Documents that are not property set streams must be bitwise identical. Property set streams must be logically equal.

      (Their parent directories are not checked)

      Throws:
        `java.io.IOException`

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.