alte dateien löschen

Status
Nicht offen für weitere Antworten.

skip2mylou

Mitglied
Hab eine Frage und zwar befass ich mich grade mit dem Thema Daten und Datenströme und steh vor nem kleinen Problem! dateien löschen etc kein problem nur wollt mal fragen ob man irgendwie bestimmte dateien die zum Beispiel älter als 30 Tage alt sind rausfiltern kann zum löschen? und wenn ja wie stellt man das an?

gruß
skip2mylou
 

Niki

Top Contributor
Probiers mal so:

Code:
		final long d = getDate();
		File[] f = new File("C:/Temp").listFiles(new FileFilter(){
			public boolean accept(File pathname) {
				if(pathname.isFile() && pathname.lastModified() < d)
					return true;
				return false;
			}
		});

		private static long getDate(){
			Calendar c = Calendar.getInstance();
			c.add(Calendar.DATE, -30);
		
			return c.getTimeInMillis();
		}
 

skip2mylou

Mitglied
Habs mal so probiert, aber ich glaub irgendwie die funktion an die falsche stelle gesetzt oder so! und zwar löscht er bei mir immer noch z.B alle Textdateien aber nicht die die älter als 30 Tage alt sind! (Hab noch nen Button hinzugefügt zum Löschen!)

Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.util.Calendar;


import javax.swing.JButton;
import javax.swing.JFrame;

class TxtFileNameFilter implements FilenameFilter
{
	public boolean accept(File f, String s) 
	{
		return s.toLowerCase().endsWith(".txt");
	}
}

public class deletebutton
{
	private static long getDate(){ 
		   Calendar c = Calendar.getInstance(); 
		   c.add(Calendar.DATE, -30); 
		 
		   return c.getTimeInMillis(); 
	}
	public static void deleteTree (File path)
	{
		
		final long d = getDate(); 	
		for (File file : path.listFiles(new TxtFileNameFilter()))
		{
			if (file.isDirectory()&&path.lastModified()<d)
				deleteTree(file);
			file.delete();
			//System.out.println(file);
		}
		path.delete();
		//System.out.println(path);
	}
	
	public static void main (String[] args)
	{
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
		JButton b = new JButton ("Löschen");
		ActionListener al = new ActionListener ()
	                {
		        public void actionPerformed(ActionEvent e) 
	    	        {
			deleteTree (new File ("D:/Java/"));
			System.exit(0);
	    	        } 
	                };
	     b.addActionListener(al);
	     frame.add(b);
	     frame.pack();
	     frame.setVisible(true);
		
	}

}
 

dirk.be

Mitglied
Code:
for (File file : path.listFiles(new TxtFileNameFilter())) { 
    if (file.isDirectory() && path.lastModified() < d) 
        deleteTree(file); 
    file.delete(); 
}
Da der TxtFileNameFilter hier schon auf die File-Aufzählung innerhalb der for-Schleife wirkt, wird file.isDirectory() wohl immer false liefern (abgesehen von Verzeichnissen, deren Name auf ".txt" endet).

Den FilenameFilter solltest Du so implementieren, dass dieser alle Verzeichnisse akzeptiert (damit Du auch die Unterverzeichnisse durchsuchen kannst), aber nur solche Dateien, die älter als 30 Tage sind und auf ".txt" enden:
Code:
class MyFilenameFilter implements FilenameFilter 
{
   private long getDate() { 
      Calendar c = Calendar.getInstance(); 
      c.add( Calendar.DATE, -30 );
     
      return c.getTimeInMillis(); 
   }

   public boolean accept( File f, String s ) 
   { 
      if ( f.isDirectory() ) 
         return true; 
      
      return s.toLowerCase().endsWith( ".txt" ) && f.lastModified() < getDate();      
   } 
}
 

skip2mylou

Mitglied
mein code sieht jetzt so aus

Code:
package Directory;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.util.Calendar;


import javax.swing.JButton;
import javax.swing.JFrame;

class TxtFileNameFilter implements FilenameFilter 
{ 
   private long getDate() { 
      Calendar c = Calendar.getInstance(); 
      c.add( Calendar.DATE, -30 ); 
      
      return c.getTimeInMillis(); 
   } 

   public boolean accept( File f, String s ) 
   { 
	if ( f.isDirectory() ) 
                    return true;    
                return s.toLowerCase().endsWith( ".txt" ) && f.lastModified() < getDate();      
   } 
} 


public class deletebutton
{
	public static void deleteTree (File path)
	{
		
		for (File file : path.listFiles(new TxtFileNameFilter()))
		{
			if (file.isDirectory())
				deleteTree(file);
			//file.delete();
			System.out.println(file);
		}
		//path.delete();
		//System.out.println(path);
	}
	
	public static void main (String[] args)
	{
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
		JButton b = new JButton ("Löschen");
		ActionListener al = new ActionListener ()
	    {
			public void actionPerformed(ActionEvent e) 
	    	{
				deleteTree (new File ("D:/Java/"));
				System.exit(0);
	    	} 
	    };
	    b.addActionListener(al);
		frame.add(b);
		frame.pack();
		frame.setVisible(true);
		
	}

}

Das Problem ist jetzt, dass ich wieder alle Dateien im Ordner angezeigt bekomme und nicht nur txt Dateien und Dateien die älter als 30Tage alt sind. Wenn ich Zeile 12 und 13 wegnehme, zeigt er mir Txt Dateien an, aber das Problem dabei ist, dass sich diese Altersabfrage dann auf den Ordner und nicht auf die Dateien bezieht, sprich wenn ich eine neue Datei hinzufüge, er mir dann wieder keine Dateien anzeigt, weil das Änderungsdatum des Ordners ja wieder das aktuelle datum ist.
 
G

Guest

Gast
Nimm doch einen richtigen FileFilter und nicht den FileNameFilter, dann kannst du über den FileFilter auch gleich die zu "neuen" Dateien gar nicht mit anzeigen lassen
 
G

Guest

Gast
vielen dank!
hab jetz den FileFilter benutzt, eigentlich voll der schwachsinn, dass ich den nicht direkt genommen habe!

@giftstachel --> die beiden Zeilen brauch ich doch für mein Fenster und meinem Button ;-)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
P Neue Java v8 JRE Version nicht über alte drüber installierbar: Wie sonst? Java Basics - Anfänger-Themen 7
J Kopierte Datei soll alte ersetzen. Java Basics - Anfänger-Themen 6
D Alte Klausuraufgabe Threads Java Basics - Anfänger-Themen 10
C Alte Klausuraufgabe - UML in Java implementieren Java Basics - Anfänger-Themen 1
G Konsole gibt "alte" sachen aus Java Basics - Anfänger-Themen 3
T Alte Einträge im Array werden von neuen überschrieben Java Basics - Anfänger-Themen 5
Fab1 alte Java Datei wird ausgeführt (trotz Änderung) Java Basics - Anfänger-Themen 4
K Iteration - Alte und neue For Schleife Java Basics - Anfänger-Themen 17
M Problem mit getter, liefert nur alte Werte Java Basics - Anfänger-Themen 6
S JDK installieren alte Versionen deinstallieren Java Basics - Anfänger-Themen 2
R Neue GUI öffnen und die Alte schließen Java Basics - Anfänger-Themen 6
N Das alte Thema "File Encoding" Java Basics - Anfänger-Themen 2
G Initialisierung + alte Werte Java Basics - Anfänger-Themen 7
Z DB-Abfrage liefert alte Werte Java Basics - Anfänger-Themen 11
G neue for Schleife in alte for Schleife umwandeln. Java Basics - Anfänger-Themen 2
S paintComponent, neue Instanz überschreibt wohl alte Instanz Java Basics - Anfänger-Themen 6
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
I Dateien aus dem Resource Folder laden Java Basics - Anfänger-Themen 2
A Thread XML-Dateien zusammenfügen Java Basics - Anfänger-Themen 11
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
J Dateien lesen und schreiben Java Basics - Anfänger-Themen 5
B Jar Dateien ohne IDE verwenden? Java Basics - Anfänger-Themen 1
A Optimierung eines Programms: Mergen der Dateien Java Basics - Anfänger-Themen 23
A Zwei XML-Dateien Mergen Java Basics - Anfänger-Themen 14
A Input/Output Mehrere Csv-Dateien einlesen Java Basics - Anfänger-Themen 2
LetsSebi Dateien werden nicht in Zip gespeichert Java Basics - Anfänger-Themen 1
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
J Alle Dateien aus einem Verzeichnis laden Java Basics - Anfänger-Themen 10
MiMa log4j als separate Dateien in Schleife? Java Basics - Anfänger-Themen 6
M Scannen von *.txt - Dateien; wo sind der oder die Fehler? Java Basics - Anfänger-Themen 4
A Input/Output Dateien einlesen und ausgeben Java Basics - Anfänger-Themen 7
S Lese- / Schreibfähigkeit von Dateien sicherstellen Java Basics - Anfänger-Themen 1
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
J Java findet plötzlich die Dateien im Projekt nicht mehr. Java Basics - Anfänger-Themen 12
J Dateien in Verzeichnissen rekursiv auflisten wirft Exception Java Basics - Anfänger-Themen 4
L Classpath Alle Dateien im Classpath finden Java Basics - Anfänger-Themen 4
MiMa Formate für Dateien und Pfade? Java Basics - Anfänger-Themen 1
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
L Richtige Reihenfolge der Dateien Java Basics - Anfänger-Themen 5
CptK Datentypen Text Dateien einlesen Java Basics - Anfänger-Themen 3
J Logging erzeugt zwei dateien.... Java Basics - Anfänger-Themen 7
A Dateien Verschieben Java Basics - Anfänger-Themen 1
M Mehre Dateien parallel kopieren mit Multithreading Java Basics - Anfänger-Themen 8
C Methoden Dateien im Ordner anzeigen Java Basics - Anfänger-Themen 12
J Java-Dateien lassen sich nicht editieren Java Basics - Anfänger-Themen 46
E FTP Dateien hochladen Java Basics - Anfänger-Themen 3
J Probleme beim schreiben von Dateien Java Basics - Anfänger-Themen 5
Korvinus Vergleichen von 2 csv-Dateien Java Basics - Anfänger-Themen 2
I Texte mit Absätzen in Dateien speichern und auslesen Java Basics - Anfänger-Themen 1
M "substring()" mit Dateien und Pfadangaben Java Basics - Anfänger-Themen 5
Voreck Jar Dateien Standart programm ändern Java Basics - Anfänger-Themen 12
K Dateien aus Source-Package verwenden Java Basics - Anfänger-Themen 10
B Dateien aus dem "resource" - Folder kopieren in Verzeichnis Java Basics - Anfänger-Themen 9
B Kopieren von Dateien mit Adminberechtigungen Java Basics - Anfänger-Themen 14
F Threads ftp4j, viele Dateien upload Java Basics - Anfänger-Themen 5
P Einen Ordner mit Dateien hochladen [FTP] Java Basics - Anfänger-Themen 2
X Dateien direkt hintereinander schreiben, Dateiname Java Basics - Anfänger-Themen 25
G Messwerte in 2 Dateien schreiben Java Basics - Anfänger-Themen 20
C Verarbeitung von sehr großen Dateien Java Basics - Anfänger-Themen 52
F Input/Output Dateien lesen/schreiben Java Basics - Anfänger-Themen 1
V Mehrere Dateien aus JFileChooser in eine ArrayList speichern Java Basics - Anfänger-Themen 2
K Dateien lesen | IndexOutOfBoundsException Java Basics - Anfänger-Themen 2
T Classpath Problem mit dem auslesen von Text-Dateien (Pfad) Java Basics - Anfänger-Themen 3
A attach source: Zusammenhang zwischen JAR und .class/.java Dateien? Java Basics - Anfänger-Themen 2
T .jar Datei als Ordner benutzen/ Dateien aus .jar Datei auslesen Java Basics - Anfänger-Themen 3
C Klassen Class Files nachladen (mehrer .jar Dateien) Java Basics - Anfänger-Themen 2
Bluedaishi for schleife um Dateien wieder zusammen zu fügen Java Basics - Anfänger-Themen 11
S Resourcen-Dateien im Jar-File verfügbar machen (Intellij 14) Java Basics - Anfänger-Themen 14
J Dateien für anderen User "mitgeben" Java Basics - Anfänger-Themen 1
S Dateien mit Java verschieben Java Basics - Anfänger-Themen 6
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
E Dateien werden nicht gelöscht Java Basics - Anfänger-Themen 10
S Class Dateien decompilieren Java Basics - Anfänger-Themen 4
T Fehler beim Schreiben in Dateien! Java Basics - Anfänger-Themen 4
Bluedaishi Dateien Lassen sich unter windows nicht löschen Java Basics - Anfänger-Themen 8
Z Mehrere XML-Dateien zu einer zusammenfügen Java Basics - Anfänger-Themen 3
K JAR Dateien einbinden - funkt nicht wie es sollte... Java Basics - Anfänger-Themen 22
M Threads nio Dateien kopieren, Threads und Gui Java Basics - Anfänger-Themen 0
J *.sql Dateien in Java Java Basics - Anfänger-Themen 1
P Dateien im Ordner auflisten. Java Basics - Anfänger-Themen 3
P Compiler-Fehler .java Dateien kompilieren und .class Dateien zur .jar Java Basics - Anfänger-Themen 4
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
M Input/Output Arbeiten mit extrem vielen Dateien Java Basics - Anfänger-Themen 8
R File chooser Dateien in frame anzeigen lassen Java Basics - Anfänger-Themen 5
N tar-Dateien Java Basics - Anfänger-Themen 6
B Methoden Dateien konvertieren Java Basics - Anfänger-Themen 3
L Dateien speichern/auslesen Java Basics - Anfänger-Themen 5
M Input/Output Probleme beim Parsen von CSV und TXT Dateien Java Basics - Anfänger-Themen 7
P Wiedereinstieg und kann keine Dateien mehr öffnen... Java Basics - Anfänger-Themen 13
F Classpath Dateien einbinden und Classpath durchsuchen Java Basics - Anfänger-Themen 2
N Java Programm zum Suchen und Ersetzen von Text Dateien Java Basics - Anfänger-Themen 10
S Dateien/LinkedList/StringBuffer - SOrtierung klappt nicht so ganz Java Basics - Anfänger-Themen 2
U Best Practice Nicht-permanente Links auf Dateien Java Basics - Anfänger-Themen 5
B In welchem (Default) Pfad erstellt Java Dateien? Java Basics - Anfänger-Themen 4
I Methoden zum lesen und speichern von Dateien Java Basics - Anfänger-Themen 2
B .ut dateien ignorieren und fortsetzen Java Basics - Anfänger-Themen 9
R Ressourcen in JAR-Dateien Java Basics - Anfänger-Themen 2
J jar Dateien global erreichbar machen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben