G
Gast
Gast
Ich habe ein Problem bei der Verzeichnissuche.
Ich möchte ein Verzeichnis mit Hilfe von lastModified nach Datum und Zeit durchsuchen lassen. Das Verzeichnis ist so aufgebaut, dass in einem Mainverzeichnis verschiedene Ordner enthalten sind. Jeder Ordner steht für einen Tag(mm.dd.yyyy). In diesen Ordnern sind die jeweiligen Dateien(Bilder) enthalten.
Jetzt möchte ich mit den Datumsübergaben „startzeit“ „endzeit“ den auszulesenen Bereich im Mainverzeichniss eingrenzen lassen. Im anschluss daran soll mit der Zeitübergabe „mStartPanel“ „mEndPanel“ noch weiter das Gesuche eingrenzt werden.
Das eigentliche Problem hierbei ist, dass bei der Suche/Filterung auf keinen Fall das komplette Verzeichnis eingelesen werden darf. Es darf nur der gewünschte Bereich gelesen werden, da die Datenmenge andernfalls zu groß wäre.
Kann mir vieleicht jemand bei diesem Problem helfen?
folgenden Code habe ich bisher:
Hier lasse ich meine Zeitübergaben auf Knopfdruck ausgeben..
und hier ein erster Filterversuch
Ich möchte ein Verzeichnis mit Hilfe von lastModified nach Datum und Zeit durchsuchen lassen. Das Verzeichnis ist so aufgebaut, dass in einem Mainverzeichnis verschiedene Ordner enthalten sind. Jeder Ordner steht für einen Tag(mm.dd.yyyy). In diesen Ordnern sind die jeweiligen Dateien(Bilder) enthalten.
Jetzt möchte ich mit den Datumsübergaben „startzeit“ „endzeit“ den auszulesenen Bereich im Mainverzeichniss eingrenzen lassen. Im anschluss daran soll mit der Zeitübergabe „mStartPanel“ „mEndPanel“ noch weiter das Gesuche eingrenzt werden.
Das eigentliche Problem hierbei ist, dass bei der Suche/Filterung auf keinen Fall das komplette Verzeichnis eingelesen werden darf. Es darf nur der gewünschte Bereich gelesen werden, da die Datenmenge andernfalls zu groß wäre.
Kann mir vieleicht jemand bei diesem Problem helfen?
folgenden Code habe ich bisher:
Hier lasse ich meine Zeitübergaben auf Knopfdruck ausgeben..
Code:
private void suchen() {
File directory = new File("K:/Arbeiten/Javasicherung/TestArchiv/");
File[] fileList = directory.listFiles(new DateFileFilter(lStartTime,lEndTime));
System.out.println(fileList);
// Date lStartTime = new Date();
// Date lEndTime = new Date();
// CComboBoxPanel lStartBoxPanel = new CComboBoxPanel(mStartPanel.getHour(),mStartPanel.getMinute());
// lStartBoxPanel.getMergedTime();
// System.out.println("STARTZEIT: " +lStartBoxPanel.toString());
// CComboBoxPanel lEndBoxPanel = new CComboBoxPanel();
// lEndBoxPanel.mergeTime(mEndPanel.getHour(),mEndPanel.getMinute());
System.out.println("Startzeit :"+ mStartPanel.getHour() +":" + mStartPanel.getMinute());
System.out.println("Endzeit :"+ mEndPanel.getHour() +":" + mEndPanel.getMinute());
System.out.println("Startdatum :"+ startzeit.getDate());
System.out.println("Enddatum :"+ endzeit.getDate());
}
und hier ein erster Filterversuch
Code:
class DateFileFilter implements FileFilter {
private long startDate;
private long endDate;
public DateFileFilter(Date startzeit, Date endzeit) {
this.startDate = startzeit.getTime();
this.endDate = endzeit.getTime();
}
public boolean accept(File file) {
long fileDate = file.lastModified();
return startDate <= fileDate && fileDate <= endDate;
}
}