Input/Output File.length() gibt bei vielen Ordnern 0 zurück

Blackhole16

Bekanntes Mitglied
Ich bin dabei eine Art explorer zu schreiben. Nun möchte ich natürlich auch die Größe des Files anzeigen. Aber bei fast allen Ordnern wird 0 zurück gegeben, obwohl, wenn ich sie öffne, viele Dateien drin sind... Auch sind die gelieferten Werte von Ordnern meist zu klein. Z. B. C:/Programme ist laut File.length() nur 12KB groß o_O.
Was mich so verwundert ist, dass die Dateigrößen von Dateien richtig angezeigt werden, nur bei Ordnern nicht.
Komisch ist auch, dass z. B. bei C:/$Recycle.Bin die Größe richtig angezeigt wird.

Das File existiert (exists liefert true zurück) und ich habe auch die benötigten Rechte. Hier mal der Ausschnitt:

Java:
long length = file.length();
if (length < 1024) {
	fileInfos[i][1] = length + " B";
} else if (length < 1048576) {
	fileInfos[i][1] = length/1024 + " KB";
} else if (length < 1073741824) {
	fileInfos[i][1] = length/1048576 + " MB";
} else if (length < 1099511627776L) {
	fileInfos[i][1] = length/1073741824 + " GB";
}

isDirectory() = true, exists() = true, listFiles() != null, canRead() = true, canWrite() = true und isHidden = false.k Ein Beispiel hierfür wäre

Was mach ich falsch?

mfg
BH16
 

XHelp

Top Contributor
Verzeichnisse haben keine Größe an sich.
"c:\programme" liefert 12KB zurück, weil es kein Verzeichnis ist, sondern nur ein Link (=Datei) auf "c:\program files"

Wenn du die Größe von Verzeichnissen ermitteln willst, dann musst du alle Dateien in diesem Ordner durchgehen und aufsummieren.
 

Blackhole16

Bekanntes Mitglied
Ok, gut zu wissen ;)

Aber das mit dem aufsummieren dauert doch ganz schön, oder? Das geht bei einer Festplatte von 1TB doch nicht ganz so schnell, oder =?

Wie macht Windows das denn, dass das da so schnell geht?

Und ist der Aufwand nicht ein wenig zu groß? Da gibt es doch bestimmt bessere Varianten, oder? ;(

mfg
BH16
 

XHelp

Top Contributor
Wie kommst du darauf, dass es bei Windows schneller dauert? Klick mal rechte Maustaste>Eingenschaften auf den Ordner und schau zu, wie nach und nach die Zahl wächst. Alles andere könnte man vielleicht durch Cache erklären.
 

Blackhole16

Bekanntes Mitglied
geht das echt nicht schneller!?! :p habe gerade 8 Minuten gebraucht, nur um von 35GB herauszufinden, dass es 35GB sind :D

Also einfach abspeichern Was eignet sich dazu am besten? einfach ne txt?

Ich denke, dass ich das in nem eignene Thread laufen lasse, sodass man nebenbei schon die Dateien durchforsten kann, nur leider noch nicht die Größe.

Aber wie bekomme ich die Größe dann in den EDT? Das wäre nochmal recht interessant :p

mfg
BH16
 
S

Spacerat

Gast
Afaik zeigt Windows die "echte" Grösse von Unterverzeichnissen gar nicht rekursiv an, sondern cached die Grössen bereits besuchter Verzeichnisse nur. Liegen in besuchten Verzeichnissen noch andere unbesuchte Verzeichnisse, stimmt die Grösse der darüber liegenden natürlich auch nicht. Erst bei einem Klick auf "Eigenschaften" wird rekursiv (natürlich mit X verstecken Systemprozessen) aufsummiert. Die Grösse von Verzeichnissen also ständig aktuell halten zu wollen, ist ein fataler Gedanke, der eines "Sanity-Checks" - jedoch nicht auf der Festplatte - bedarf, also lass das. ;)
[EDIT]BTW.: Stichwort AmigaFFS. -> ".fastdir"-Datei. Muss aber vom Dateisystem aktuell gehalten werden, sonst bringt's nix. Und HPFS bzw. NTFS oder, oder, oder bieten diese Option nicht.[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:

Blackhole16

Bekanntes Mitglied
OK, danke an alle Mitarbeiter. Ich habe es jetzt einfach so gelöst, dass ich nur die Größe von Files anzeige, nicht aber von Ordnern. Habs grad von Windoof angeschaut... Aber anders scheint es ja echt nur schwer zu gehen. Mal sehen, wenn ich fertig bin kann ich das ja mal reinbringen :)

Würde das besser gehen, wenn ich die Suche auf z.B. 4 Threads aufteile oder hält mich da die Geschwindigkeit der Festplatte auf?

mfg
BH16
 
S

Spacerat

Gast
Natürlich... Threads bringen in solchen Angelegenheiten immer was. X versteckte Systemprozesse - oder nennen wir sie Kernel-Prozesse, weil nicht sichtbar - bedeutet rekursiv, für jedes Verzeichnis einer. Das könntest du genauso machen. Natürlich könntest du dir zusätzlich auch noch die besagte ".fastdir"-Datei anlegen, aber wie gesagt, muss die halt vom Dateisystem selber aktuell gehalten werden und es gibt nicht mehr viele Systeme, die das machen. Ist halt 'ne Uralte Technik, die man extrem gut aus dem Tritt bringen kann, wenn man diese Datei kurzerhand löscht. Und es zu emulieren bedeutet, dass man erst nachsehen muss, ob die Datei vorhanden ist und anschliessend ob sie auch aktuell ist. Schon ist man wieder am Verzeichnisse durchsuchen, und die Datei hat nix gebracht. Ergo... vergiss' es. ;) Lass es wie es ist, mit ausschlieslich den Dateilängen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J File length als Prüfwert für Download Java Basics - Anfänger-Themen 5
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
R File.pathSeparator und File.separator Java Basics - Anfänger-Themen 46
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
izoards Prunsrv - Windows Service - .bat file starten Java Basics - Anfänger-Themen 84
I File Uploader... Statusanzeige, Berechnung des Status etc. Java Basics - Anfänger-Themen 0
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
G jar file lässt sich nicht öffnen Java Basics - Anfänger-Themen 1
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
berserkerdq2 Überprüfen ob eine Schreibberechtigung auf ein file exisitert bzw. ob man dieses file löschen kann, wie? Java Basics - Anfänger-Themen 9
berserkerdq2 IOstreams, was unterscheidet file von z. B. BufferedWriter? Java Basics - Anfänger-Themen 11
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
A java jar-File Java Basics - Anfänger-Themen 1
E Executable jar file fehler Java Basics - Anfänger-Themen 9
I Upload File zu einem Webservice Java Basics - Anfänger-Themen 17
I ZIP File erstellen Java Basics - Anfänger-Themen 10
LeoDerKek Textdatei in JAR-File Java Basics - Anfänger-Themen 4
Tom/S File Java Basics - Anfänger-Themen 10
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
A Checkstyle - File contains tab characters Java Basics - Anfänger-Themen 2
H Java file nicht gefunden Java Basics - Anfänger-Themen 5
C File speichern Java Basics - Anfänger-Themen 5
C Runnable Jar-File erzeugen Java Basics - Anfänger-Themen 14
C Pfad zu Properties-File bei ResourceBundle Java Basics - Anfänger-Themen 7
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
rafi072001 Lesen aus einem Excel File Java Basics - Anfänger-Themen 10
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
K File (png) in Image laden Java Basics - Anfänger-Themen 3
B Inputstream in file schreiben? Java Basics - Anfänger-Themen 23
S Input/Output Reader/Writer finden file nicht Java Basics - Anfänger-Themen 3
T Buffered Stream leert Txt File Java Basics - Anfänger-Themen 3
A 2d Arrays aus txt.file einlesen Java Basics - Anfänger-Themen 16
Dimax In Java File (nicht in Java Projekt) mysql Driver importieren Java Basics - Anfänger-Themen 3
K File wird in der .Jar nicht gefunden Java Basics - Anfänger-Themen 3
E TXT FILE EINLESEN Java Basics - Anfänger-Themen 4
Trèfle EXCEL-File Laufwerkunabhängig einbinden. Java Basics - Anfänger-Themen 1
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
B Hilfe bei InputStream To File Java Basics - Anfänger-Themen 22
topi relativer Pfad in einem Runnable JAR file Java Basics - Anfänger-Themen 12
A jar File kleiner bekommen Java Basics - Anfänger-Themen 3
B File öffnen in src/main/webapp Java Basics - Anfänger-Themen 4
K File-Name Vergleich Java Basics - Anfänger-Themen 2
krgewb Runnable JAR File Export Java Basics - Anfänger-Themen 11
S Maxium aus einer File finden Java Basics - Anfänger-Themen 12
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
D Input/Output File exists canRead canWrite Java Basics - Anfänger-Themen 11
B cal4j - Error at line 1:Unexpected end of file Java Basics - Anfänger-Themen 0
P jar file lässt sich nicht ausführen Java Basics - Anfänger-Themen 4
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
F File von Windowsfreigabe laden Java Basics - Anfänger-Themen 1
S java.nio.file.FileSystemException bei Dateizugriff vermeiden Java Basics - Anfänger-Themen 7
Vince42 NIO File Tree in XML umwandeln Java Basics - Anfänger-Themen 10
J Zweidimensionales Array in CSV File exportieren Java Basics - Anfänger-Themen 3
E War-File Problem mit Eclipse Java Basics - Anfänger-Themen 3
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
M Email versenden Outlook, attached File, ohne Anmeldung Java Basics - Anfänger-Themen 4
M Input/Output Word File Kopieren Java Basics - Anfänger-Themen 12
K Runable Jar File erstellen Java Basics - Anfänger-Themen 17
T Java Executable jar file funktioniert nicht Java Basics - Anfänger-Themen 4
sourcecorn Werte aus einem File lesen Java Basics - Anfänger-Themen 6
Kopak'rraf Korruptes zip File. Java Basics - Anfänger-Themen 0
T File für Einstellungen wird nicht geladen Java Basics - Anfänger-Themen 1
S Sounddatei in Jar File integrieren Java Basics - Anfänger-Themen 2
S Index File bauen Java Basics - Anfänger-Themen 5
T Anzeige, wie lange es noch dauert bis ein File gesendet ist. Java Basics - Anfänger-Themen 2
T filereader , file aus programm einlesen Java Basics - Anfänger-Themen 12
Ghostman1711 Itext PDF print File gelockt by Java Java Basics - Anfänger-Themen 15
N Email mit Anhang - File not Found Java Basics - Anfänger-Themen 1
K Interface Kein Bild im .jar-File Java Basics - Anfänger-Themen 15
S Bild in Jar-File mit ImageIO Java Basics - Anfänger-Themen 50
Syncopated Pandemonium Compiler-Fehler The constructor MP3File(File) refers to the missing type NoMPEGFramesException Java Basics - Anfänger-Themen 7
S File mit canRead() testen Java Basics - Anfänger-Themen 4
A file.delete funktioniert nicht Java Basics - Anfänger-Themen 15
K Classpath Lesen von Property-File Java Basics - Anfänger-Themen 1
S jar file Java Basics - Anfänger-Themen 19
B Fragen zu ZIP-File Java Basics - Anfänger-Themen 9
B Dateityp von File bekommen Java Basics - Anfänger-Themen 2
I Automatisch Verzeichnis erstellen bei File erstellen Java Basics - Anfänger-Themen 5
E Große Datenmengen effizient in CSV File speichern Java Basics - Anfänger-Themen 4
I String zu File umwandeln Java Basics - Anfänger-Themen 2
N File virtuell ByteStream Java Basics - Anfänger-Themen 11
X Übergabeparameter Konstruktor (File) Java Basics - Anfänger-Themen 13
Anfänger2011 file.isDirectory() liefert falschen Wert!? Java Basics - Anfänger-Themen 1
ms_cikar Jar file mit resource erzuegen Java Basics - Anfänger-Themen 28
E lesen csv file column by column Java Basics - Anfänger-Themen 10
U Anhand von Ant ein War-File erstellen Java Basics - Anfänger-Themen 0
B Quellcode einelsen "line by line" (und abspeichern in file (txt) Java Basics - Anfänger-Themen 7
O Zip-File Inhalt einlesen Java Basics - Anfänger-Themen 3
V Erste Schritte Dateinamen aus einer FIle[] in eine List Java Basics - Anfänger-Themen 11
P Jar File Java Basics - Anfänger-Themen 3
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
S CSV File - "Vergleichen und Sortieren" Java Basics - Anfänger-Themen 3
T Wieso kann ich das jar file nicht starten? Java Basics - Anfänger-Themen 5
S Resourcen-Dateien im Jar-File verfügbar machen (Intellij 14) Java Basics - Anfänger-Themen 14
A Wieso übergibt der nicht die bearbeitete txt file Java Basics - Anfänger-Themen 8
Ruvok Executable Jar File startet nicht Java Basics - Anfänger-Themen 3
R Ini File erstellen Java Basics - Anfänger-Themen 1
J file.lenght spinnt ab 50mb Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben