recursive file control