Vergleich eines Datenträgers auf neue Dateien

wusli

Aktives Mitglied
Hallo zusammen,

Ich habe das Problem, ich möchte einen Datenträger darauf überprüfen, ob eine neue datei auf den Datenträger kommt.
Ich hab mir überlegt, dass mit zwei fileList zumachen, eine die den Inhalt hat und eine die sich ständig erneuert.
Sobald dann die zweite eine neue Datei hat, soll eine anweisung ausgeführt werden und die erste den Inhalt der zweiten bekommen.
Jetzt ist meine Frage wie kann ich den Inhalt der neuen fileList mit dem der alten vergleichen???:L

Mfg Wusli
 
Zuletzt bearbeitet von einem Moderator:
wie nicht?

fange zur Übung mit etwas anderem an, fülle in eine Liste eine Zahl 1, in eine andere eine Zahl 2,
kannst du diese beiden Listen vergleichen?
 
nun ja, dann wäre doch zumindest die Aufgabe, eine Liste mit 1, und eine Liste mit 2 zu vergleichen,
viel eher geeignet und für das Forum übersichtlicher, als mega-komplizierte Dateioperationen, tausende verschachtelte Verzeichnispfade, oder? 😉


so ganz nur mit 'ich weiß nix, wie geht was?' habe ich allerdings auch nicht viel Motivation,
eine Suchmaschine liefert zu 'java vergleich von listen' sehr viele Links,
hilft das schon oder ist dass jetzt schlecht dass ich das Theme 'übernehme' und noch nichts wesentliches geschrieben habe?

edit:
kannst du irgendwelche Details beitragen, z.B. sind die Listen schon sortiert?
reicht es irgendeinen Unterschied festzustellen oder muss bei
1, 2, 3, 4, 5, 6, 7 vs 1, 3, 4, 5, 6, 7 positiv berücksichtigt werden dass die letzten 5 Elemente übereinstimmen?
 
Zuletzt bearbeitet von einem Moderator:
Dort ist jetzt bei der Google suche aber nur mit array listen, ich habe aber FileListen:
Java:
private static String[] getdir() {
		File dir = new File("////Ntserver//Fax");
		String[] fileList1 = dir.list(new FilenameFilter() {
			public boolean accept(File d, String name) {
				return name.endsWith(".tif");
			}
		});
		return fileList1;

wie könnte ich die vergleichen?

btw: ich blick auch bei den array listen nicht durch, bin noch eher Java-anfänger.
oder um einfacher zu fragen, wie kann ich den Inhalt dieser Liste ausgeben?
 
Zuletzt bearbeitet:
was ist denn eine 'array Liste'?
die Ausgabe steht noch vor dem Vergleich, absolut, wenn du das auch nicht kennst wird die Aufgabe ja immer fraglicher..

es gibt Schleifen zum Durchlauf von Listen oder Arrays, mit Index,
Index ist auch wichtig zum Vergleichen, das erste Element der ersten Liste mit dem ersten der zweiten vergleichen usw.

aber vorher unbedingt ausgeben, in der Tat,
Galileo Computing :: Java ist auch eine Insel - 3 Klassen und Objekte
das ganze Kapitel (3.8 Arrays) oder

3.8.5 Zugriff auf die Elemente über den Index
Java:
int[] primes = { 2, 3, 5, 7, 11 };
for ( int i = 0; i < primes.length; i++ )   // Index: 0 <= i < 5 = primes.length
  System.out.println( primes[ i ] );
 
soweit so gut hab das ganz so gelöst
Java:
File file = new File("////Ntserver//Fax");  
				 File[] files = file.listFiles();  
				 for (int fileInList = 0; fileInList < files.length; fileInList++)  
				 {  
				 System.out.println(files[fileInList].toString());  
				 }
er erkennt auch wenn sich neue dateien dort befinden, muss jetzt nur noch wissen wie ich die beiden filelisten vergleichen kann, sprich wenn die sich erneuernde ungleich mit der alten ist
 
Zuletzt bearbeitet:
'java vergleich von arrays' (mit Intelligenz modifizerte Suchabfrage)
liefert Links wie
Forum "Java" - Vergleich von Arrays - MatheRaum - Offene Informations- und Vorhilfegemeinschaft
(nicht der erste Link, bisschen Suchen gehört schon dazu)

mit Code a la
Java:
public boolean vergleicheArrays(char[]x,char[]y){

  boolean sindGleich=false;

  for(int i=0; i<x.length;i++){
   if(x[i]==y[i]){
      sindGleich=true;}
   else break;
  }

  return sindGleich;
}
wobei noch nicht auf unterschiedliche Länge geschaut wird und du hast keine char[], also noch zu tun

-----

sind solche Hilfen wirklich unerläßlich, wüßtest du sonst nicht wie es in der Welt vorran geht?


-----

> for (int fileInList = 0; fileInList < files.length; fileInList++)
bleibe lieber bei einfachen i, j, k für Laufindexe
 
Java:
public static void main(String[] args) throws Exception {
		 
		 File file1 = new File("////Ntserver//Fax");  
		 File[] files = file1.listFiles();  
		 for (int fileInList = 0; fileInList < files.length; fileInList++)  
		 {  
		 System.out.println(files[fileInList].toString());  
		 }   
			 class Task extends TimerTask {
			public void run() { 
				File file = new File("////Ntserver//Fax");  
				 File[] files = file.listFiles();  
				 for (int fileInList = 0; fileInList < files.length; fileInList++)  
				 {  
				 System.out.println(files[fileInList].toString());  
				 }   
				if (file.listFiles() != file1.listFiles()) 
				{
				{

					try {
						sendmail();
					} catch (AddressException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (NoSuchProviderException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					} catch (MessagingException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
					
				}
			}
		}

so das ist der momentane Stand und da komm ich nicht weiter -.-", zumindest, was mein problem ist
 
> if (file.listFiles() != file1.listFiles())
nicht neu abfragen, du hast doch schon die Arrays, zudem würde neu abgefragt der aktuelle Stand,
also ziemlich sicher dasselbe herauskommen, ist das denn nicht sonnenklar?

------

du hast zwei File-Arrays anscheinend, bisher vielleicht noch nicht gut genug in zwei Variablen,
ohne final oder Instanzattribut kannst du auch kaum auf das alte zugreifen,
aber wenn du das irgendwann mal klappt,
dann übergibt beide an die Methode vergleicheArrays() wie zuvor gepostet

ist das ein unerreichbarer Plan einmal mehr gefragt?
ich kann nicht damit leben, ohne Erklärung von dir Trivialitäten zu beschreiben,

du sollst/ willst zwei Arrays vergleichen, ich poste dir eine fertige Methode zum Array-Vergleich,
aber ohne Kommentar baust du sie nicht ein, verwendest sie nicht, schreibst mit keinem Wort was konkret dich stört,
nur quasi "ich kann nix - bitte fertige Lösung posten", da mache ich langsam nicht mehr mit

edit:
in meinem nächsten Posting werde ich mich maximal auf die Anzahl Wörter beschränken, die dein Posting enthält,
aktuelle wären das 16, kannst dir ja ausrechnen wie dann mein aktuelles Posting aussähe 😉
wobei du den vielen Text auch als blahblah ansehen kannst, das will ich nicht verleugnen
 
Zuletzt bearbeitet von einem Moderator:
Das Problem ist, ich verstehe die methode die du gepostet hast nichgt, wenn du wenigstens sagst wo ich meine files in der methode einbauen soll??
 
die Arrays musst du übergeben, nicht einbauen, das ist doch klar?

die Methode musst du umstellen dass sie mit File[] arbeitet, wie ich mehr oder weniger (ok, wirklich nicht deutlich) schon sagte,
was dabei zu tun ist und ob das dann alles funktioniert sind sicher berechtigte Fragen, konkrete Probleme kann man besprechen,

aber was kann an der Grundidee schwierig sein? wenn du File[] vergleichen willst, und erkannt hast, dass die Methode bisher das nicht leistet, musst du sie auf auf File[] umstellen oder gar so allgemein dass sie alles mögliche vergleichen kann, aber soweit wollen wir mal nicht gehen,
kannst du erklären warum zumindest dieser Schritt, einer von tausenden Gedanken Schritt für Schritt zu einem Programm dir nicht kam?
 

Neue Themen


Zurück
Oben