Anzahl der Dateien von einer Festplatte

Stigma

Gesperrt
Moin

Gibt es einen Befehl um die Anzahl der Dateien von einer Festplatte zu erhalten?

int datein = gibMitEineGanzeZahlDieDieSummeAusAllenDateienAufFestplatteDUnterWindowsGibt
 
Moin!
Nö gibt es nicht. Da wirst du dir selber was basteln müssen. Schreit geradezu nach einer rekursiven Funktion und ist auch schnell gemacht.
Eventuell gibt es sowas aber schon hier oder bei Google fertig. Eine Dateisuche ist dem recht ähnlich..

*grüssle*
MeinerEiner
 
Aufgepasst:

Ich habe ein Programm welches mir die Festplatte durchsucht geschriben. Nun möchte ich dem Benutzer den aktuellen Status anzeigen die Bar (du weißt schon)

Damit ich dies machen kann muss ich ja ihrgend einen Bezugspunkt haben. Das währe alle enthaltenen Datein.

Hast du eine bessere Idee?
 
Der Benutzer startet das Programm. Nun gibt er die gesuchte Datei ein und klickt auf den Start Button. Dieser bleibt eine ganze Weile eingerestet und das Programm läuft im hintergrund weiter und durchsucht die Festplatte. nach ca. 15sec werden alle gefundenen Datein angezeigt und ausgegeben.

Problem 1:
der Button rastet ein

Problem 2:
Der Benutzer denkt das, das Programm still steht und beendet es eventuell. Eine Status anzeige würde ihn davon abhalten. Wie soll ich nun die Statusanzeige umsetzen. Was sind 100%?
 
Ich würde entweder beim Programmstart alle Dateien einmal zählen. Hätte natürlich den Nachteil, dann wenn zwischenzeitlich Dateien hinzukommen oder wegfallen, das nicht mehr so ganz stimmt.
Oder ich würde das ganze über die Dateigrösse machen. Vergleichen mit der Menge die komplett durchsucht werden soll mit dem was bereits durchsucht wurde. All diese Grössenangaben bekommst du über ein File Objekt..

Beides wären nut Schätzungen. Ne 100% Methode ist mir nicht bekannt..
*grüssle*
MeinerEiner
 
Hi...
hab da was gefunden, hoff du kannst das noch brauchen.
Ein paar Zeilen die ein Laufwerk durchsuchen und die Dateien zählen.

Code:
import java.io.File;

public class FileCounter {

	/**
	 * @author Vinzenz Haas
	 */
	public static int fileCount = 0;
	
	public static void main(String[] args) {
		
		getDirectoryContent("C:\\");
		System.out.println(fileCount);
		
	}
	
	private static void getDirectoryContent(String directoryPath){
		File file = new File(directoryPath);
			File[] filelist = file.listFiles();
			for (File file2 : filelist) {
				if(file2.isDirectory())
					try {
						getDirectoryContent(file2.getAbsolutePath());
					} catch (Exception e) {
						System.out.println(file2.getName());
						file2.getAbsoluteFile();
					}
					
				else
					fileCount++;
			}
	}

}


hth Vinz
 
Oder du machst einen Endlosbalken, der einfach dauerhaft durchläuft, während noch nach Dateien gesucht wird. Früher zu DOS-Zeiten gab's da mal drehende Striche. *g*

Ein anschauliches Beispiel ist der blaue Balken, der beim Start von Windoof IksPee mehrfach durchläuft, bis endlich was anderes zu sehen ist.

Zeigt dem Benutzer, dass was getan wird, ohne auf Schätzungen angewiesen zu sein. ;)
 
@ vynz:
Danke! Ich hab ein kleines Intro, welches im Hintergrund den Code durchläuft. Damit bekomme ich die Zahl der Dateien auf der Festplatte und kann diese als Richtwert benutzen.
 
Hallo,

das die Anwendung still steht ist klar. Es wird alles ein einem Thread ausgeführt. Also auch die Fenster werden in einem Thread gezeichnet. Deine Suche hält natürlich das Zeichnen auf. Das ganze lässt sich leicht beheben, in dem du deine Suche in einem eigenen Thread ausführst.

MFG

zEriX
 
Zurück