Je sais qu'en utilisant l'objet File
, nous pouvons obtenir la dernière date de modification pour un File
(c'est-à-dire File.lastModified()). Mais, mon exigence est d'obtenir le dernier temps accédé pour un File
en Java. Comment l'obtenir?Obtenir le dernier temps d'accès pour un fichier
Répondre
Vous aurez besoin d'utiliser the new file I/O API (NIO2) qui est livré avec Java 7. Il a une méthode lastAccessTime() pour lire le dernier temps d'accès.
Voici un exemple d'utilisation:
Path file = ...
BasicFileAttributes attrs = Files.readAttributes(file, BasicFileAttributes.class);
FileTime time = attrs.lastAccessTime();
Pour plus d'informations, voir Managing Metadata dans le Java Tutorial. Gardez à l'esprit que cette information n'est pas fiable.
Je voudrais savoir comment java 7 obtient le dernier temps consulté. – randeepsp
Java 7 le demande depuis le système d'exploitation, en utilisant une fonction spécifique du système d'exploitation. Est-ce ce que vous vouliez demander? J'ai ajouté un exemple de la façon dont Java 7 peut être * utilisé * pour avoir le temps, au cas où vous le vouliez. –
BasicFileAttributes ne peut pas être résolu. J'utilise Java 1.8. Quel pourrait être le problème? –
Vous ne pouvez pas le faire avec Java ordinaire, vous aurez besoin d'utiliser JNI à des données spécifiques accéder à la plate-forme comme celle-ci ou utiliser extensions to the core Java library comme ce qui suit:
javaxt.io.File file = new javaxt.io.File("path");
file.getLastAccessTime();
Ou, si vous avez Java 7, allez avec la réponse d'Esko et utilisez NIO.
Les personnes (moi-même inclus) désactivent généralement le temps car cela accélère considérablement l'accès au disque. Les gens le font aussi sur des serveurs. – cletus
Je vais seconder Cletus. J'ai éteint une fois sur mon WinXP quand j'ai acheté un lecteur SSD. Ce SSD n'était pas bon avec les écritures aléatoires, et la mise à jour des derniers temps d'accès était en train de tuer ma machine sur des opérations sinon en lecture seule. –