async file exists check