Host system data files are written directly to a large erase block flash
memory system with a unique identification of each file and offsets of
data within the file but without the use of any intermediate logical
addresses or a virtual address space for the memory. Directory
information of where the files are stored in the memory is maintained
within the memory system by its controller, rather than by the host. A
type of memory block is selected to receive additional data of a file
that depends upon the types of blocks into which data of the file have
already been written. Blocks containing data are selected for reclaiming
any unused capacity therefrom by a process that selects blocks in order
starting with those containing the least amount of valid data.