Abfragen aber wie ?

Status
Nicht offen für weitere Antworten.

fantrixx

Bekanntes Mitglied
Hi all,

ich bin ganze zeit am rumbasteln und habe schon unmengen an Sachen probiert aber komme nicht auf die einfachste und schnellste Lösung vll. könnt ihr mir ja helfen ?

Also ich habe in zwei Ordner einmal "PPT" und "PDF".
In den Ordner sind jewilst viele .ppt und .pdf dateien. Die Dateinamen ähneln sich meistens, weil die .ppt Dateien zu .pdf Dateien umgewandelt wurden. Nur kommen immer wieder neue .ppt Dateien hinzu und müssen zu einem PDF umgewandelt werden. Ich wollte gerne ein Programm schreiben das die Dateinamen, der in den beiden Ordner etnhaltenen Dateien vergleicht. Die .ppt Dateien mit den .pdf dateien und das umgekehrt. Danach sollen die Pfade der Dateien die nicht in den jeweils anderen Ordner vorhanden sind in eine Array rausgeschrieben werden.

Könnt ihr mir so grob sagen, was die einfachste und schnellst Lösung für sowas wäre ?

Die Dateinamen der Dateien in den beiden Ordner habe ich schon in eine LinkedList gespeichert und kann von dort nachgefragt werden.

mfg
 
PELLE hat gesagt.:
http://java.sun.com/javase/6/docs/api/java/io/File.html

Für Dateivergleiche kannst dir ja mal die Klasse File und seine Methoden anschauen.

Ähm ja aber ich benutze ja kein File Objekt dafür direkt. Ich habe ja die Namen der Dateien schon in einer LinkedList stehen. Da habe ich nichts mehr mit dem File Objekt zu tun.

Ich kann euch ja mal den Code heri her schreiben, weiss aber nicht so recht ob euch das was bringen wird ?

Code:
		public void compare() {
		String[] notExist = new String[100];

		pptDir = "c:\\test\\ppt\\";
		pdfDir = "c:\\test\\pdf\\";

		File f1 = new File(pptDir);
		File f2 = new File(pdfDir);



		// PPT LINKEDLIST
		LinkedList pptLl1 = new LinkedList();
		String[] pptPfade = f1.list();

		for (int a = 0; a < pptPfade.length; a++) {
			pptLl1.add(pptPfade[a]);
			//System.out.println(pptLl1.get(a));
		}

		//PDF LINKEDLIST
		LinkedList pdfLl1 = new LinkedList();
		String[] pdfPfade = f2.list();

		for (int i = 0; i < pdfPfade.length; i++) {
			pdfLl1.add(pdfPfade[i]);
			//System.out.println(pdfLl1.get(i));
		}

		// mit PDF Prüfung
		for(int i = 0; i <= pdfLl1.size() -1; i++) {	
			for(int a = 0; a <= pptLl1.size() -1; a++) {
				// zusammen schneiden der Datei namen
				String pdfTmp = (String)pdfLl1.get(i);
				int x = pdfTmp.indexOf(".");
				String pdf = pdfTmp.substring(0, x);
				
				String pptTmp = (String)pptLl1.get(a);
				int y = pptTmp.indexOf(".");
				String ppt = pptTmp.substring(0, y);
				// zusammmenschneiden ende
				
				System.out.println("-----");
				System.out.println("PDF: "+pdf);
				System.out.println("PPT: "+ppt);
				System.out.println("-----");

				if(pdf.equals(ppt)) {

				} else { 

				}
			}
		}
 
Code:
public List<String> compare()
{
    List<String> notExist = new ArrayList<String>();

    pptDir = "c:\\test\\ppt\\";
    pdfDir = "c:\\test\\pdf\\";

    File f1 = new File(pptDir);
    File f2 = new File(pdfDir);

    // PPT LINKEDLIST
    LinkedList<String> pptLl1 = new LinkedList<String>( Arrays.asList( f1.list() ) );

    //PDF LINKEDLIST
    LinkedList<String> pdfLl1 = new LinkedList<String>( Arrays.asList( f2.list() ) );

    // mit PDF Prüfung
    boolean exists = false;
    for( String ppt : pptLl1 )
    {
        for( String pdf : pdfLl1 )
        {
            if( ppt.substring( 0, ppt.lastIndexOf( "." ) ).equals( pdf.substring( 0, pdf.lastIndexOf( "." ) ) )
            {
                exists = true;
            }
        }
        if( !exists ) notExists.add( ppt );
        exists = false;
    }
    return notExists;
}

die methode gibt dir ne liste mit den ppts zurück, welche noch kein pdf besitzen... denk ich mal 😉
 
Wenn ich das richtig sehe, nimmst Du Dir aus beiden Verzeichnissen alle Dateinamen und schaust, ob er in dem jeweils anderen Verzeichnis vorhanden ist.

Ich würde das vom Prinzip her so machen:

Code:
list files in pptdir
for every file in files {
   if not filename.pdf exists
       remember filename
}

Und dann das gleiche nochmal, für den Fall, dass PDF vorhanden, aber kein PPT.
 
@mika

nur mal noch so ne Frage, was hat das <String> da zu suchen ?

Code:
List<String> notExist = new ArrayList<String>();
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben