2010-12-06 2 views
8

Я делаю основной файловый браузер и хочу получить последнюю измененную дату каждого файла в каталоге. Как я могу это сделать? У меня уже есть имя и тип каждого файла (все хранятся в массиве), но также нужна последняя измененная дата.Получение последней измененной даты файла в Java

ответ

3

Поскольку Java 7, вы можете использовать java.nio.file.Files.getLastModifiedTime(Path path):

Path path = Paths.get("C:\\1.txt"); 

FileTime fileTime; 
try { 
    fileTime = Files.getLastModifiedTime(path); 
    printFileTime(fileTime); 
} catch (IOException e) { 
    System.err.println("Cannot get the last modified time - " + e); 
} 

где printFileName может выглядеть следующим образом:

private static void printFileTime(FileTime fileTime) { 
    DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy - hh:mm:ss"); 
    System.out.println(dateFormat.format(fileTime.toMillis())); 
} 

Выход:

10/06/2016 - 11:02:41 
+0

Ответ правильный и хорошо объяснил, но, пожалуйста, не учит молодые, чтобы использовать давно отживший и заведомо неприятный `класса SimpleDateFormat`. Вместо этого, начиная с Java 8, используйте `FileTime.toInstant()`, конвертируйте `Instant` в` ZonedDateTime` и просто распечатайте его или отформатируйте с помощью `DateTimeFormatter`. – 2018-01-29 10:47:05

Смежные вопросы