let rec remove_directory_contents_rec dir =
let entries = readdir dir
in
forA entries
(fun entry ->
let path = Filename.concat dir entry
in
if is_directory path
then (remove_directory_contents_rec path; Unix.rmdir path)
else Unix.unlink path)