Я знаю, что с использованием объекта File
мы можем получить последнее модифицированное время для File
(т. Е. File.lastModified()). Но, мое требование - получить последнее доступное время для File
в Java. Как мне это получить?Получить время последнего доступа к файлу
ответ
Вам нужно будет использовать the new file I/O API (NIO2), который поставляется с Java 7. Он имеет способ lastAccessTime() для чтения последнего времени доступа.
Вот пример использования:
Path file = ...
BasicFileAttributes attrs = Files.readAttributes(file, BasicFileAttributes.class);
FileTime time = attrs.lastAccessTime();
Для получения дополнительной информации см Managing Metadata в Java Tutorial.
Мне хотелось бы знать, как последнее время доступа к java 7. – randeepsp
Java 7 запрашивает его из операционной системы, используя определенную функцию ОС. Это то, что вы хотели спросить? Я добавил пример того, как Java 7 можно * использовать *, чтобы получить время, если вы это имели в виду. –
BasicFileAttributes не может быть разрешен. Я использую Java 1.8. Что может быть неправильным? –
Вы не можете сделать это с простым Java, вам нужно использовать JNI для доступа к платформе конкретных данных, таким как эта или использовать extensions to the core Java library как следующее:
javaxt.io.File file = new javaxt.io.File("path");
file.getLastAccessTime();
Или, если у вас есть Java 7, пойдите с ответом Эско и используйте NIO.
Имейте в виду, что эта информация ненадежна. Люди (включая меня) обычно отключают atime, поскольку это значительно ускоряет доступ к диску. Люди тоже делают это на серверах. – cletus
Я второй cletus. Когда я купил накопитель SSD, я выключил atime на моем WinXP. Этот SSD не был хорош при случайной записи, и обновление последнего времени доступа приводило к смерти моего компьютера в других операциях, доступных только для чтения. –