pstein Geschrieben 19. Juli 2009 Teilen Geschrieben 19. Juli 2009 Angenommen ich will im Verzeichnis D:\myproj\logs\ alle Dateien ermitteln (nicht die evtl. vorhandenen Unter-Verzeichnisse) und deren Grösse in Bytes (nicht KB oder MB) ermitteln. Wie sieht sowas in Java aus? Danke und Gruss Peter Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 19. Juli 2009 Teilen Geschrieben 19. Juli 2009 Ich nehme mal an das dass eine Aufgabe ist die du lösen sollst. Was hast du bis jetzt unternommen um das Problem zu lösen? Vielleicht als Hinweis schau dir mal die Java API an hier speziell die Klasse File. Java Platform SE 6 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
speedi Geschrieben 20. Juli 2009 Teilen Geschrieben 20. Juli 2009 Die klasse File stellt eine Methode namens listFiles() bereit, welche dir ein File[] zurück gibt mit allen Dateien und Ordnern die direkt in dem Ordner liegen auf den dein ursprüngliches File-Objekt zeigt. z.B. File [] filesAndDirsInSys32 = new File("C:/Windows/System32/").listFiles(); Wenn du dieses Array dann durchgehst findest du an der Stelle an der du grade bist entweder eine Datei oder einen Ordner. Wenn es ein Ordner ist rufst du die gleiche Methode wie eben einfach wieder auf (siehe: "rekursive Methoden"). Um die Größe heraus zu finden gibt es mindestens 3 Varianten: 1. Du schaust ob dir die JAVA-API entsprechende Methoden zur verfügung stellt (GOOGLE). 2. Du liest die Datei ein und zählst dabei die gelesenen Bytes. 3. Du rufst "dir" mittels Runtime.getRuntime().exec() und wertest den InputStream des Process-Objekts aus, welches dir diese Methode zurück gibt. Allerdings dürfstest du dadurch die Plattformunabhängigkeit verlieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.