Pass directory_entry instead of recursive_directory_iterator
Compute before and after tree asynchronously
Move reserve call to a more appropriate location