[java] creation date van een file / dir opvragen

Pagina: 1
Acties:

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Ik wil in een java proggie een aantal directories op creation date sorteren, maar kan niet vinden hoe dat moet.
Ik heb uiteraard in de docs gezocht, maar daar kan ik alleen dit vinden:
http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html
en ik kan daar alleen een methode vinden die de datum teruggeeft waarop een file / dir voor het laatst is gewijzigd. Maar dat interesseert me dus niets.
Iemand enig idee?

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 16:17

Robtimus

me Robtimus no like you

Library zoeken / zelf schrijven. Dit moet nml op OS level worden afgehandeld, en niet alle OS'en houden de creation date bij, hence it isn't in the API. De API wordt nml zoveel mogelijk platform onafhankelijk gehouden.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
aha, ik snap het

ik heb zitten googlen en er lijkt niet echt een library te bestaan. kwam wel vragen tegen van gasten die er ook naar opzoek waren, maar die kregen allemaal het antwoord als wat jij me gaf. Maar kennelijk zag niemand het zitten dat zelf te schrijven. Kwam wel 1 andere dirty oplossing tegen die voorstelde om via exec() de output van windows op te vangen en het daar uit te trekken.

Ik zou het liever alleen echt op lossen. Probleem is alleen dat dat misschien een wat té ambitieuze gedachte is. Ik programmeer nog maar net in Java en daarbij heb ik geen idee hoe ik moet beginnen.

Maar, wie niet waagt, die niet wint.
Ik neem aan dat ik de File Allocation Table moet gaan benaderen en daar de info uit trekken? Afgezien van waar die info staat (die kan ik vast wel ergens op de microsoft site vinden), heb ik geen idee hoe ik die kan benaderen. Als iemand me een trap in de goeie richting kan geven zou ik dat erg fijn vinden :)

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 16:17

Robtimus

me Robtimus no like you

Ik weet er zelf ook niet al te veel vanaf, maar je kan met JNI native methods schrijven. Deze native methods kun je in (oa?) C schrijven, volgens mij moet je zo wel toegang kunnen krijgen tot de Windows API, en op die manier moet je het op kunnen vragen.

Edit: even op MSDN.com gekeken, files en directories hebben in het .NET framework een method genaam GetCreationTime.
In C++ heeft die
C++:
1
public: static DateTime GetCreationTime(String* path);

[ Voor 30% gewijzigd door Robtimus op 24-12-2004 19:27 ]

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
:(

Dus dit valt alleen oplossen als je kennis van C oid heb

Ik denk dat ik dan maar voor die dirty oplossing ga :|

Verwijderd

Java is C gebasseerd, zo anders is het niet hoor. C (niet C++ maar gewoon C) is gewoon heel basic. Voor wat jij wil heb je zelfs van het basic C bijna niks nodig. Je zou zelfs alles in de main kunnen proppen.

Bij microsoft kun je wel zien hoe je de Windows API moet aanspreken. Dat is voor elke taal die dat kan wel ongeveer hetzelfde.

Als het je lukt om een helloworld naar een console te printen in C, lukt dit je vast ook wel.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Het probleem is dat je app dan niet meer platform onafhankelijk is. En verder zou ik dan niet zosnel grijpen naar een externe dll, maar op basis van het platform juiste commando`s proberen uit te voeren en dit weer in te lezen.

Verwijderd

Alarmnummer schreef op dinsdag 28 december 2004 @ 16:57:
Het probleem is dat je app dan niet meer platform onafhankelijk is. En verder zou ik dan niet zosnel grijpen naar een externe dll, maar op basis van het platform juiste commando`s proberen uit te voeren en dit weer in te lezen.
Klopt, maar als het platformonafhankelijk eenvoudig te doen was geweest, zat het ongetwijfeld in de Java API.

Ik weet overigens niet of je ook de Windows API vanuit java kunt aanspreken?
Anders kun je het inderdaad ook net zo goed via exec doen, want erg platform onafhankelijk ben je dan toch al niet bezig.

Om het dirty een beetje schoon te maken zou je inderdaad nog wel eerst kunnen checken of 'ie op Windows, MAC of *NIX draait, en a.d.h. daarvan code laten uitvoeren. (zo doe ik het ook met mijn webbrowser openen :) (maar dat gaat er straks uit hoor, zodra ie webstart is...) )

[ Voor 8% gewijzigd door Verwijderd op 28-12-2004 17:01 ]

Pagina: 1