// possible problem: case of keys (Windows only) static class DiskTextMap { File dir; *(S dirName) { dir = getProgramFile(dirName); dir.mkdirs(); } void clear() { deleteAllFilesWithSuffix(dir, ".text"); } S get(S key) { ret loadTextFile(getFile(key)); } File getFile(S key) { ret new File(dir, urlencode(key) + ".text"); } void remove(S key) { getFile(key).delete(); } void put(S key, S value) { saveTextFile(getFile(key), value); } int size() { ret l(listFilesWithSuffix(dir, ".text")); } Set keySet() { new TreeSet set; for (File f : listFilesWithSuffix(dir, ".text")) set.add(dropSuffix(".text", f.getName())); ret set; } }