// sorted by descending date static L conceptBackupFiles(S progID) { ret conceptBackupFiles(programDir(progID)); } static L conceptBackupFiles(File dir) { S regexp = "^(.*)\\.backup(20\\d\\d)(\\d\\d)(\\d\\d)-(\\d+)$"; new L l; for (File f : listFilesNotDirs(dir, newFile(dir, "backups"))) { S s = f.getName(); S originalName = regexpFirstGroup(regexp, s); continue unless eq(originalName, "concepts.structure.gz"); l.add(f); } ret sortFilesByNameDesc(l); }