Modified Date von Files ändert sich ungewollt

  • 1 Antworten
  • Letztes Antwortdatum
K

Knobbs

Neues Mitglied
0
Hallo zusammen,

ich bin gerade am verzweifeln. Ich schreibe in meiner App ein kleines Logfile mit. Allerdings möchte ich, dass ältere Files automatisch wieder gelöscht werden.
Leider wird das lastModified() Datum jedesmal für alle Files im Verzeichnis neu gesetzt, so dass immer der aktuelle Zeitstempel zurückgegeben wird.

Soweit ich das sehe, liegt es an der Zeile
Code:
File folder = new File(Environment.getExternalStorageDirectory()+"/test/");
Allerdings verstehe ich nicht wieso hierdurch lastModiefied für alle Files neu gesetzt wird.


Hat jemand eine Lösung?
Ein Create Date gibts ja anscheinend nicht ...

Code:
            String format = "yyyy-MM-dd_HHmmss";
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            String timestamp = sdf.format(new Date(System.currentTimeMillis()));
            File folder = new File(Environment.getExternalStorageDirectory()+"/test/");
            File filename = new File(Environment.getExternalStorageDirectory()+"/test/","Log_"+timestamp+".txt");
            if (!folder.exists()) {
                folder.mkdirs();     
            }
            
            File[] files = folder.listFiles();
            for( File element : files){
                Long lastModDate = element.lastModified();
                showToast(String.valueOf(lastModDate),"short");
                if(lastModDate+(5*24*60*60*1000)<System.currentTimeMillis()) {
                    element.delete();
                }
            }
 
Fehler gefunden.
Code:
            Runtime.getRuntime().exec("logcat -c");
            String cmd = "logcat -r 100 -s -v time -f "+filename.getAbsolutePath()+" Alarmabfrage";
            Runtime.getRuntime().exec(cmd);
Hab nicht bedacht, dass der Prozess, der mein Logfile schreibt im Hintergrund weiterläuft. Eigentlich logisch ...
Ich schreib mein File jetzt "selbst" :) und jetzt klapps auch mit dem Zeitstempel.
 
Zurück
Oben Unten