diff --git a/src/java/org/apache/poi/poifs/filesystem/EntryUtils.java b/src/java/org/apache/poi/poifs/filesystem/EntryUtils.java index 5f473dbe1..a4b452f4b 100644 --- a/src/java/org/apache/poi/poifs/filesystem/EntryUtils.java +++ b/src/java/org/apache/poi/poifs/filesystem/EntryUtils.java @@ -105,15 +105,9 @@ public class EntryUtils DirectoryEntry targetRoot, List excepts ) throws IOException { - Iterator entries = sourceRoot.getEntries(); - while ( entries.hasNext() ) - { - Entry entry = entries.next(); - if ( !excepts.contains( entry.getName() ) ) - { - copyNodeRecursively( entry, targetRoot ); - } - } + FilteringDirectoryNode source = new FilteringDirectoryNode(sourceRoot, excepts); + FilteringDirectoryNode target = new FilteringDirectoryNode(targetRoot, excepts); + copyNodes( source, target ); } /**