Dateieigenschaften auslesen

N4pst3r

Grünschnabel
Hallo Community
ich weiß das dieses Thema hier im forum schon existiert allerdings hat es mir nur bedingt weitergeholfen.
zum problem:
ich habe einen baum der alle dateien und verzeichnisse von der festplatte abbildet. es sollen nun die informationen der dateien oder verzeichnisse beim selektieren neben dem baum eingeblendet werden.
z.B.:
iexplore.exe
Dateityp: Anwendung;
Beschreibung: Internet Explorer;
Größe: 623 KB (638.816 Bytes);
Erstellt: Dienstag, 27. Oktober 2009, 12:12:33;
Kommentar: Microsoft Corporation - Windows® Internet Explorer

Ich weiß dass man um die metadaten zu ermitteln für verschiedene datentypen verschiedene bibliotheken benötigt und so irgendwie die informationen über java verwenden kann. genaueres weiß ich nicht :(

könntet ihr mir sagen welche bibliotheken, aufrufe etc man für welchen datentyp braucht? ebenso peile ich die zusammenhänge nicht >.<
außerdem müsste ich ja recht viele bibliotheken installieren wenn ich die eigenschaften von allen möglichen typen auf der festplatte bräuchte oder?

gruß n4pst3r
 
Also andere Betriebssysteme außer windows werde ich nicht abdecken müssen...
ist jdk7 nicht erst beta-release?
was hat das denn mit den bibliotheken auf sich? also c/c++ kenn ich nicht. wenn ich das mit java verknüpfen soll ... ouha
aber ich frag mal im c-forum
 
C hat den nachteil das man es immer plattform-abhängig schreibt ...
das liegt daran weil unter windows die dynamisch dazugelinkten bibliotheken andere sind und andere methoden beinhalten als z.b. unter mac oder linux ...
die sprache java selbst hat dieses problem nicht ... nur die in C geschriebene VM ... da tritt dasselbe problem auch auf ...
nun hat java aber den vorteil das es am developer der VM liegt die java spezifikationen in C umzusetzen ... der java-dev kann *oder besser : sollte können* sich also darauf verlassen das sein code auf allen VM's läuft ... solange JAVA-Standards genutz werden ...
macht man jetzt z.b. gebrauch von klassen aus dem paket SUN.* so kann man diesen code auch nur mit VM's von SUN oder solchen ausführen die dieses paket als lib bereitstellen
 
d.h. dass ich mit java allein nicht plattformabhängig programmieren kann selbst wenn ich es wollte? es sei denn ich benutze externe programme/dienste die in java eingebunden werden können? .__.
ergo kann ich wirklich nichts mit java in sachen dateieigenschaften erreichen? mich mit C, itext, etc auseinanderzusetzen hab ich keine lust >.<
 
Wenn du Glück hast, gibt es unter Windows auch Programme für die Kommandozeile, die Dateieigenschaften auslesen können. Die kannst du dann per Runtime.exec() oder mit einem ProcessBuilder ausführen.
Wenn nicht, musst du trotzdem keine Zeile C schreiben: dafür gibt es JNA. Was du trotzdem brauchst, ist die API der Bibliothek die du nutzt. Die kann aber von System zu System verschieden sein (32Bit und 64Bit, XP->Vista->7 und Server Versionen könnten verschiedene DLLs haben).
 
d.h. dass ich mit java allein nicht plattformabhängig programmieren kann selbst wenn ich es wollte?
ähäm ... da hast du jetzt genau falschrum verstanden
java wurde zur plattformunabhängigkeit konzipiert ... folglich sollten java-apps auf allen systemen gleich laufen solange nur standard-klassen benutzt werden
wenn du jetzt aber dinge einbindest die nunmal plattformabhängig sind verlierst du natürlich den vorteil der plattformunabhängigkeit ...
aber dir verbietet keiner mit java plattform- und/oder VM-abhängig zu programmieren ...
 
Java ist Plattform unabhängig!!

Bei bestimmten API's oder Implementierungen kann es sein das eine Anwendung nur für eine Plattform ist. Das Passiert dann wenn man Plattform spezifische Bibliotheken nutzt oder befehle an eine Plattform sendet die nur von gewissen Plattformen verstanden werden.

Java kann schon länger mit file Objekten umgehen!

Es ist möglich die Größe, Name, Datum der Letzten Bearbeitung und den Pfand zu ermitteln.

Mit Java 7 (ich warte auf den Final Release) wird der Leistungsumfang der File Erweitert, wobei das package auf nio wechselt.
 
gutgut... ich danke euch.
ich werde ebenfalls auf das final release von j1.7 warten und mich mal in cmd/DOS nach möglichkeiten umschauen... ansonsten werde ich die bibliotheken brauchen
 
über die windows-console *das hat nichts mehr mit DOS zu tun ... die CMD ist seit win 2k nurnoch ein sog. befehlsinterpreter* kommst du an keine informationen die dateityp-spezifisch sind ...
das dir windows solche informationen anzeigen kann *z.b. bei ZIP / RAR - archiven deren archiv-eigenschaften wie kompressionsgrad oder enthaltene daten oder sowas* wird nur möglich in dem beim installieren entsprechender software auch entsprechende LIB's in die system-verzeichnisse kopiert werden auf die dann win im hintergrund zugreift und dir dann nur die ausgaben der lib's präsentiert
daher bleibt dir auch kein anderer weg übrig als über eben genau diese lib's zu gehen ... oder einen eigenen parser in java zu schreiben der z.b. ein RandomAccessFile verwendet und dann die daten selbst ermittelt ...
also ja .. es ist mit java-bordmitteln möglich aber nur über umwege ... oder halt wie gesagt nutzen der lib's
auch J7 ändert daran nichts weil in java keine lib's für bestimmte dateitypen enthalten sind sondern nur um überhaupt mit files arbeiten zu können
 
Zurück