1. Обзор
В JDK 7 появилась возможность получить дату создания файла.
В этом уроке мы узнаем, как получить к нему доступ через java.nio
.
2. Файлы.getAttribute
Один из способов получить дату создания файла — использовать метод Files.getAttribute
с заданным Path
:
try {
FileTime creationTime = (FileTime) Files.getAttribute(path, "creationTime");
} catch (IOException ex) {
// handle exception
}
Тип createTime
— FileTime
, но из-за того, что метод возвращает Object,
мы должны его привести .
FileTime
содержит значение даты в качестве атрибута метки времени. Например, его можно преобразовать в Instant
с помощью метода toInstant()
.
Если файловая система не хранит дату создания файла, метод вернет значение null
.
3. Файлы.readAttributes
Другой способ получить дату создания — Files.readAttributes
, который для заданного пути
сразу возвращает все основные атрибуты файла:
try {
BasicFileAttributes attr = Files.readAttributes(path, BasicFileAttributes.class);
FileTime fileTime = attr.creationTime();
} catch (IOException ex) {
// handle exception
}
Метод возвращает BasicFileAttributes,
которые мы можем использовать для получения основных атрибутов файла. Метод createTime ()
возвращает дату создания файла как FileTime
.
На этот раз, если файловая система не хранит дату создания файла, метод вернет дату последнего изменения . Если дата последнего изменения также не сохраняется, то будет возвращена эпоха (01.01.1970).
4. Вывод
В этом уроке мы узнали, как определить дату создания файла в Java. В частности, мы узнали, что можем сделать это с помощью Files.getAttribute
и Files.readAttributes
.
Как всегда, код для примеров доступен на GitHub .