[Java] Status % beim scannen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von blaah, 27. Dezember 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 27. Dezember 2007
    Status % beim scannen

    jo, also ich habe eine funktion welche rekursiv durch die ordner und unterordner geht. jetzt kann ich ja ziemlich schwer eine status abfrage machen, da ich nicht weiß wie oft er noch rekursiv aufgerufen wird.
    dazu müsste ich ja die unterordner anzahl bzw die anzahl der dateien in allen ordnern und unterordnern wissen um eine statusabfrage zu machen.

    also z.B. festplatten scan zu 45% fortgeschritten.... etc

    hat jemand eine idee??
    ich arbeite mit java
     
  2. 27. Dezember 2007
    AW: Status % beim scannen

    Als Bezugsquelle kannst du ja den belegten Speicher der Festplatte nehmen.

    Sprich

    Größer der bis jetzt gescannten Dateien
    --------------------------------------------------- * 100
    Belegter Speicher

    Um den belegten Speicher schnell auszulesen wirst du um JNI nicht herumkommen.
     
  3. 27. Dezember 2007
    AW: Status % beim scannen

    Du kannst höchstens vorher durch die Ordner gehen und nur zählen, wie viele es sind. Danach regulär deinen Scanvorgang starten. Was anderes fällt mir nicht ein.
     
  4. 29. Dezember 2007
    AW: Status % beim scannen

    so ich habe nun eine rekursive funktion welche die anzahl der dateien ausliesst.

    Code:
     progressbar = new JProgressBar(0, this.anzahl_dateien);
     progressbar.setValue(0);
     progressbar.setStringPainted(true);
     
     frame.add(progressbar);
    
     getMp3Info("d:/mp3", ""); // Rekursive funktion
     
     frame.pack(); 
     frame.setVisible( true ); 
    
    jetzt läuft der aber erst durch die rekursion und dann sieht erscheint die progressbar gleich auf 100%
    wenn ich die funktion ganz unten aufrufe, zeigt er eine leere progressbar und schlagartig springt schlagartig auf 100%.


    das ist der aufruf in der rekursion:
    Code:
     progressbar.setValue(progess++);
    } 
    
    die integer progress stimmt, das wird richtig hochgezählt.

    oder ist es möglich damit das pb.setValue(... in einem actionlistener stehen muss??

    jemand eine idee??
     
  5. 30. Dezember 2007
    AW: Status % beim scannen

    das ist logisch, denn das programm braucht ja nicht soviel rechenzeit. sprich du siehst es nicht, wie schnell es gefüllt wird


    ich würde dir empfehlen, dass du das in einem Thread löst.

    viel spass beim basteln.


    nice day!!!

    EDIT: die geschwindigkeit des sleep müsste sich dann aus der anzahl der dateien ermittelt werden.
     
  6. 30. Dezember 2007
    AW: Status % beim scannen

    ich glaube nicht das es an der geschwindigkeit liegt. geht zwar schnell aber auch ned mega schnell. hab auch schon ein sleep(500); in die rekursion gemacht.
    d.h. er hat ja min 500ms gebraucht pro datei.
    und er hat nix angezeigt.

    edit:

    @ harry
    hat geklappt merci!

    das ist meine lösung:

    Code:
    ....
    Runnable runnable = new Runnable() {
     public void run()
     {
     try
     {
     getMp3Info("d:/mp3", ""); // Rekursive funktion
     }
     catch(Exception e)
     {
     System.out.println("Verarbeitungsfehler : " + e.getMessage());
     }
     }};
     
     c.add(progressbar);
    
     Thread thread = new Thread(runnable);
     thread.start();
    ....
    
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.