package eu.irreality.age; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Date; import java.util.Vector; import eu.irreality.age.filemanagement.Paths; import eu.irreality.age.i18n.UIMessages; public class SaveInfo { File fichSalv; Date fecha; String name; GameInfo infoJuego; public SaveInfo () { ; } public SaveInfo ( File fichSalv , Date fecha , String fichJuego ) { this.fichSalv = fichSalv; this.fecha = fecha; this.name = fichSalv.getName(); this.infoJuego = GameInfo.getGameInfoFromFile( fichJuego ); } public File getFile() { return fichSalv; } public String getGameFile() { if ( infoJuego == null ) return null; else return infoJuego.getFile(); } public GameInfo getGameInfo ( ) { return infoJuego; } public String getName() { return name; } public Date getDate() { return fecha; } public String toString ( ) { return getName(); } public String toLongString ( ) { String nameMsg = UIMessages.getInstance().getMessage("save.name"); String dateMsg = UIMessages.getInstance().getMessage("save.date"); String gameMsg = UIMessages.getInstance().getMessage("save.game"); if ( infoJuego == null ) return nameMsg + " " + getName() + "\n" + dateMsg + " " + getDate(); // else return nameMsg + " " + getName() + "\n" + dateMsg + " " + getDate() + "\n" + gameMsg + " " + infoJuego.toString(); } public static SaveInfo getSaveInfo ( File savefile ) throws FileNotFoundException, IOException { FileInputStream fp = new FileInputStream(savefile); java.io.BufferedReader filein = new java.io.BufferedReader ( new java.io.InputStreamReader (fp)); String fichJuego = filein.readLine(); Date fecha = new Date(savefile.lastModified()); System.out.println(savefile); System.out.println(fichJuego); try { return new SaveInfo ( savefile , fecha , fichJuego ); } catch ( Exception fnfe ) { return null; } } public static SaveInfo[] getListOfSaves() { File f = new File ( Paths.getWorkingDirectory() + File.separatorChar + Paths.SAVE_PATH ); if ( !f.exists() ) { if ( f.mkdir() ) { System.out.println( "Saves directory didn't exist, created at " + Paths.SAVE_PATH ); } else { System.err.println("Could not create saves directory at " + Paths.SAVE_PATH ); } } File[] fl = f.listFiles(); Vector result = new Vector(); for ( int i = 0 ; i < fl.length ; i++ ) { if ( fl[i].isDirectory() ) { File[] fl2 = fl[i].listFiles(); for ( int j = 0 ; j < fl2.length ; j++ ) { if ( fl2[j].getName().toLowerCase().endsWith(".alf") ) { try { result.addElement ( getSaveInfo( fl2[j] ) ); } catch ( IOException ioe ) { System.out.println(ioe);ioe.printStackTrace(); } } } } else if ( fl[i].getName().toLowerCase().endsWith(".alf") ) { try { result.addElement ( getSaveInfo( fl[i] ) ); } catch ( IOException ioe ) { System.out.println(ioe);ioe.printStackTrace(); } } } Object[] objetos = result.toArray(); SaveInfo[] ficheros = new SaveInfo[objetos.length]; for ( int i = 0 ; i < objetos.length ; i++ ) ficheros[i] = (SaveInfo)objetos[i]; return ( ficheros ); } }