#715 - cleanup DnD directory traversal code using promises