1. A method comprising: storing a file lookup table for a flash memory array in a separate random access memory; providing an entry in said file lookup table associated with each file or directory in said flash memory array, said flash lookup table storing a shortened file name and a link table index; providing a dynamic link table in said separate random access memory, said dynamic link table pointed to by said link table index, said dynamic link table pointing to a link list element; maintaining a link list element in said separate random access memory, said link list element pointing to physical data in said flash memory array; storing actual files and directories in said flash memory array and storing data, to enable said actual files to be accessed, in said random access memory, each file and directory having an entry in said table; storing file system data in said random access memory and said flash memory array; and storing less file system data for each file in said flash memory array than is stored in said random access memory.