diff --git a/bindings/java/src/org/sleuthkit/datamodel/JniDbHelper.java b/bindings/java/src/org/sleuthkit/datamodel/JniDbHelper.java
index 0b753b6246c96cda74b4f8a196a7094cb36a89ef..c468c9273cbc7187d35800b012f69245d9a66e38 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/JniDbHelper.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/JniDbHelper.java
@@ -20,6 +20,7 @@
 
 import org.apache.commons.lang3.StringUtils;
 import java.util.List;
+import java.util.Arrays;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedList;
@@ -352,7 +353,10 @@ private long addBatchedFilesToDb() {
                         null, TskData.FileKnown.UNKNOWN,
                         fileInfo.escaped_path, fileInfo.extension, 
                         false, trans);
-                    newObjIds.add(objId);
+                    if (fileInfo.fsObjId != fileInfo.parentObjId) {
+                        // Add new file ID to the list to send to ingest unless it is the root folder
+                        newObjIds.add(objId);
+                    }
 
                     // If we're adding the root directory for the file system, cache it
                     if (fileInfo.parentObjId == fileInfo.fsObjId) {
@@ -546,6 +550,7 @@ long addUnallocFsBlockFilesParent(long fsObjId, String name) {
             beginTransaction();
             VirtualDirectory dir = caseDb.addVirtualDirectory(fsIdToRootDir.get(fsObjId), name, trans);
             commitTransaction();
+            addDataSourceCallbacks.onFilesAdded(Arrays.asList(dir.getId()));
             return dir.getId();
         } catch (TskCoreException ex) {
             logger.log(Level.SEVERE, "Error creating virtual directory " + name + " under file system ID " + fsObjId, ex);