use directory scanner and a sane file copy routine to avoid reading the whole thing into memory first