Wie bekomme ich das Letzte änderungsdatum einer Java-Ressource?
Kann mir bitte jemand sagen, ein zuverlässiger Weg, um die Zeit der letzten Modifikation einer Java-Ressource? Die Ressource kann eine Datei oder ein Eintrag in ein GLAS.
- Ich wusste gar nicht, Gläser könnte timestamps in Ihnen, aber es ist wie ZIP, ich bin nicht ganz überrascht. Interessant.
- Clark Kant - nur eine Anmerkung, aber das JAR-format wird ein update mit Java 7, also Annahmen über es wird eine ZIP-Datei kann nicht mehr halten.
- Halten Sie noch in Java 8 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie mit "Ressource" etwas bedeuten, erreichbar über Class#getResource oder ClassLoader#getResource, Sie können Holen Sie sich die zuletzt geänderten Zeitstempel durch die URLConnection:
Sich bewusst sein, dass getLastModified() gibt 0 zurück, wenn die Letzte änderung unbekannt ist, was leider unmöglich ist zu unterscheiden von einem echten timestamp Lesen "1. Januar 1970, 0:00 UTC".
1/1/1970
als Geburtsdatum auf websites, die ich nicht wollen, zu geben, meine persönlichen Daten, sicher in dem wissen, dass in der DB, es wird nur der Wert0
🙂Das problem mit
url.openConnection().getLastModified()
ist, dassgetLastModified()
auf eine FileURLConnection erzeugt einen InputStream auf die Datei. So haben Sie zu nennenurlConnection.getInputStream().close()
nach der Anreise Datum der letzten änderung. Im Gegensatz JarURLConnection schafft der Eingabe-stream, der beim Aufruf getInputStream().Apache Commons VFS bietet eine generic Art der Interaktion mit Dateien aus verschiedenen Quellen.
FileObject.getContent() gibt eine FileContent-Objekt, das eine Methode für beim abrufen der Uhrzeit der letzten änderung.
Hier ist ein modifiziertes Beispiel aus der VFS website:
Ich bin derzeit mit der folgenden Lösung. Die Lösung ist
gleiche wie die meisten anderen Lösungen in seinen ersten Schritten, nämlich
einige getResource() und dann die openConnection().
Aber wenn ich die Verbindung ich bin mit dem folgenden code:
Der obige code funktioniert auf android und nicht android, es gibt die
Datum der letzten änderung des Eintrags innerhalb der ZIP, wenn die Ressourcen ist
gefunden in ein Archiv, sonst gibt es was er bekommt von
die Verbindung.
Bye
P. S.: Der code muss noch etwas putzen, dort sind manche Grenze
Fälle, in denen getJarEntry() ist null.
Hier ist mein code für immer die Zeit der letzten Modifikation Ihrer
JAR
- Datei oder eine kompilierte Klasse (bei Verwendung einesIDE
).