zuletzt erstellte oder gänderte Datei auswählen!

Status
Nicht offen für weitere Antworten.

Der_Türke

Mitglied
Hallo liebe Leute


ich hab nun ein Algorithmen Problem. Ich erstell mir mit File die liste der Dateien in dem Ordner, mit lastmodified bekomm ich das Datum in Long der Dateien die ich wiederum umwandel in Date

Code:
File file= new File("D:/server/htdocs/playground/ticketchart/tab/");
	  			File[] fileArray=file.listFiles();
	  			
	  			long[] tabdateien =new long[fileArray.length];
	  			
	  			
	  			boolean neuedatei=false;
	  			boolean altedatei=false;
	  			for(int k=0;k<fileArray.length;k++)
	  			{   
	  				tabdateien[k]=fileArray[k].lastModified();
	  				//System.out.println((tabdateien[k]));
	  				Date tabdatei = new Date(tabdateien[k]);
	  				
	  				if((tabdatei.getYear()==Now.getYear())&&(tabdatei.getMonth()<= Now.getMonth())&&(tabdatei.getDay() > Now.getDay()-1))
	  				{
	  				
	  				System.out.println(fileArray[k]);
	  				File tabdateineu =new File(fileArray[k].toString());


und möchte jetzt die 2 neuesten/zuletzt geänderten Dateien auswählen!!! mir fällt nichts gescheites ein wie ich das machen soll habs mal mit Date versucht aber das wird zu komplex gibt es eine einfache lösung in Java vlt ist es ja auch nur ein befehl um in einem ordner die 2 neuesten Dateien auszuwählen


Gruß an Alle
 
2 Variablen für die neusten anlegen, deine File-Liste durchgehen, bei jedem durchgang überprüfen, ob die Datei neuer als die aktuell gespeicherten sind, falls ja => ersetzen. Fertig. Dazu brauchste dann noch net ma date
 
Code:
File file= new File("D:/server/htdocs/playground/ticketchart/tab/");
              File[] fileArray=file.listFiles();

OK ich blicks nicht fangen wir mal ganz am anfang an ich setzt mein Pfad wo alle dateien drin sind!!!

Ich möchte jetzt die 2 dateien die zuletzt gändert wurden herausfiltern!!! kansnt vlt ein bsp geben was du gemeint hast???
 
jetzt legst du dir zwei Variablen an - z. B. File newest und File scndNewest. Dann iterierst du in einer for-schleife über dein File-Array. In der for-schleife überprüfst du jetzt zuerst, ob das Datum des aktuellen Files neuer ist, als das Datum des scndNewest-Files. Ist dies der Fall, überprüfst du, ob das aktuelle File auch neuer als das newest-File ist. Ist dies der Fall, weißt du dem scndNewest-File den Wert aus newest-File, und dem newest-File den Wert aus deinem aktuellem File zu - ansonsten weißt du lediglich dem scndNewest-File den Wert aus deinem aktuellen File zu. Wenn das aktuelle File älter als das scndNewest-File ist, machst du einfach gar nix.
 
sorry ich raff es immer noch nicht es will nicht in die birne rein !!! kanns due es vlt Codisch veranschaulichen... ???:L ???:L :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :?: :?: :?: :?: :?:
 
Sprich Code vorkauen?

Lass mich überlegen ... nö :lol: . Du sollst ja auch was lernen. Führe meine Anweisungen mal Schritt für Schritt aus und poste dann mal deinen Code.
 
Code:
File path= new File("D:/server/htdocs/tab/");
		File[] fillearray = path.listFiles();
		
		
		File firstfile=null;
		File secondfile=null;
		
		
		
		for(int i=0;i<fillearray.length;i++){
		   
			if(fillearray[i].lastModified()> secondfile.lastModified()&&(fillearray[i].lastModified()>firstfile.lastModified()))
			{
				secondfile=firstfile;
				firstfile=fillearray[i];
					
		    }
			else{
				
				secondfile=fillearray[i];
				
			}


so etwa??? ich bekom jetzt ein nullpointer exception da am anfang first und secondfile ja null sind ...was kann ich da machen????
 
na das schaut doch gut aus, so stimmts doch schon fast. Wollte nur ein bisschen Code von dir sehen 😉. Ich würde deine if-Abfragen so modifizieren: (secondFile durch sf, fielarray durch fa und firstfile durch ff abgekürzt)

Code:
if (ff == null || ff.lastModified() < fa[i].lastModified()) {
   sf = ff;
   ff = fa[i];
}
else if (sf == null || sf.lastModified() < fa[i].lastModified()) {
   sf = fa[i];
}

(ungetestet)
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben