Java file дата создания

Определить дату создания файла в Java

В JDK 7 появилась возможность получать дату создания файла.

В этом руководстве мы узнаем, как получить к нему доступ через java.nio .

2. Files.getAttribute

Один из способов узнать дату создания файла — использовать метод Files.getAttribute с заданным путем :

Тип CreationTime является FileTime , но из — за того , что метод возвращает Object, мы должны бросить его .

FileTime содержит значение даты как атрибут отметки времени. Например, его можно преобразовать в Instant с помощью метода toInstant () .

Если файловая система не хранит дату создания файла, метод вернет null .

3. Files.readAttributes

Другой способ получить дату создания — использовать Files.readAttributes, который для заданного пути возвращает все основные атрибуты файла сразу:

Метод возвращает BasicFileAttributes, который мы можем использовать для получения основных атрибутов файла. Метод createTime () возвращает дату создания файла как FileTime .

На этот раз, если файловая система не хранит дату создания файла, метод вернет дату последнего изменения . Если дата последнего изменения также не сохранена, то будет возвращена эпоха (01.01.1970).

4. Вывод

В этом руководстве мы узнали, как определить дату создания файла в Java. В частности, мы узнали, что можем сделать это с помощью Files.getAttribute и Files.readAttributes .

Как всегда, код примеров доступен на GitHub.

Популярные посты

Источник

Определить дату создания файла в Java

В 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 .

Источник

Определение даты создания файла в Java

JDK 7 представил способ просмотра даты создания файла. Узнайте, что это такое.

1. Обзор

В JDK 7 появилась возможность получить дату создания файла.

В этом уроке мы узнаем, как получить к нему доступ через java.nio .

2. Files.getAttribute

Один из способов получить дату создания файла – использовать метод Files.getAttribute с заданным Путем :

Тип CreationTime – это FileTime , но из-за того, что метод возвращает Объект, мы должны привести его .

FileTime содержит значение даты в качестве атрибута метки времени. Например, он может быть преобразован в Instant с помощью метода to Instant () .

Если файловая система не хранит дату создания файла, то метод вернет null .

3. Файлы.Атрибуты чтения

Другой способ получить дату создания-с помощью Files.readAttributes , который для заданного Пути возвращает все основные атрибуты файла сразу:

Метод возвращает атрибуты BasicFileAttributes, которые мы можем использовать для получения основных атрибутов файла. Метод creation Time() возвращает дату создания файла как File Time .

На этот раз, если файловая система не хранит дату создания файла, то метод вернет дату последнего изменения . Если дата последнего изменения также не сохранена, то будет возвращена эпоха (01.01.1970).

4. Заключение

В этом уроке мы узнали, как определить дату создания файла в Java. В частности, мы узнали, что можем сделать это с помощью Files.getAttribute и Files.readAttributes .

Как всегда, код для примеров доступен на GitHub .

Читайте ещё по теме:

Источник

How to get proper file creation date of file?

I need not last modification time and not last file accessed time, but file creation time. I have not found information about this. Maybe some libs?

Path p = Paths.get(f.getAbsoluteFile().toURI()); BasicFileAttributes view = null; try < view = Files.getFileAttributeView(p, BasicFileAttributeView.class).readAttributes(); >catch (IOException e) < // TODO Auto-generated catch block e.printStackTrace(); >FileTime creationTime = view.creationTime(); 

In this code creation time is not valid and return today date. Operation System: Windows 7 Java: SE-1.7

3 Answers 3

As yshavit said, not all operating systems record the date created. However, you should be able to use java.nio.file to determine this information on operating systems that do have this functionality — see the documentation for files.getAttribute — note that BasicFileAttributeView has a field for creationTime .

You can use FileSystems.getDefault(); to determine what FileAttributeView s are supported on the current operating system.

Files.getAttribute(path, «basic:createdAt»); will return a FileTime object with the date the file was created on a system that supports BasicFileAttributeView . You’ll have to convert it to a java.util.Date object, but I’ll let you figure that out on your own.

Further Reading

  • NIO API for getAttribute()
  • NIO API for BasicFileAttributeView
  • A tutorial for using readAttributes()
  • A comprehensive tutorial on using FileAttributes
  • Another StackOverflow thread on the same topic

Источник

Как получить дату создания файла на Java

В Java мы можем использовать атрибуты NIO Files.readAttributes, чтобы получить дату создания файла.

В Java (@начиная с 1.7) мы можем использовать NIO Файлы.readAttributes чтобы получить все метаданные файла , включая дату создания файла.

Path file = Paths.get(fileName); BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class); System.out.println("creationTime: " + attr.creationTime()); // creationTime: 2020-07-20T09:29:54.627222Z

1. Файлы.Атрибуты чтения (NIO)

В этом примере используется Files.readAttributes для печати даты создания файла.

package com.mkyong.io.howto; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.BasicFileAttributes; public class GetCreationDate1 < public static void main(String[] args) < String fileName = "/home/mkyong/test.txt"; try < Path file = Paths.get(fileName); BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class); System.out.println("creationTime: " + attr.creationTime()); >catch (IOException e) < e.printStackTrace(); >> >
creationTime: 2020-07-20T09:29:54.627222Z

P.S Мы также можем использовать тот же код для получения даты создания каталога.

Дальнейшее чтение Прочитайте этот пример, чтобы преобразовать файловое время в другой формат даты и времени .

2. Файлы.Атрибут getAttribute (NIO)

Files.readAttributes вернет все метаданные файла, такие как время создания, время последнего изменения, размер файла и т.д.

Мы можем использовать Files.getAttribute для возврата определенных метаданных файла, например, CreationTime атрибут.

package com.mkyong.io.howto; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.FileTime; public class GetCreationDate2 < public static void main(String[] args) < String fileName = "/home/mkyong/test"; try < Path file = Paths.get(fileName); FileTime creationTime = (FileTime) Files.getAttribute(file, "creationTime"); System.out.println("creationTime: " + creationTime); >catch (IOException e) < e.printStackTrace(); >> >

3. До Java 7

В этом примере используется Runtime.getRuntime().exec для выполнения системной команды dir file/tc , чтобы указать дату создания файла в Windows и проанализировать содержимое вручную, чтобы извлечь дату создания файла.

P.S До Java 7 не существовало официального API для получения даты создания файла.

3.1 Просмотрите директора/тк команда в Windows.

C:\> dir c:\logfile.log /tc Volume in drive C has no label. Volume Serial Number is 0410-1EC3 Directory of c:\ 31/05/2010 08:05 14 logfile.log 1 File(s) 14 bytes 0 Dir(s) 35,389,460,480 bytes free C:\> dir /? Displays a list of files and subdirectories in a directory. //. /T Controls which time field displayed or used for sorting timefield C Creation A Last Access W Last Written
package com.mkyong.io.howto; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class GetFileCreation3 < public static void main(String[] args) < Process proc; BufferedReader br = null; try < proc = Runtime.getRuntime() .exec("cmd /c dir c:\\logfile.log /tc"); br = new BufferedReader( new InputStreamReader(proc.getInputStream())); String data = ""; //it's quite stupid but work, ignore first 5 lines for (int i = 0; i < 6; i++) < data = br.readLine(); >System.out.println("Extracted value : " + data); //split by space StringTokenizer st = new StringTokenizer(data); String date = st.nextToken(); //Get date String time = st.nextToken(); //Get time System.out.println("Creation Date : " + date); System.out.println("Creation Time : " + time); > catch (IOException e) < e.printStackTrace(); >finally < if (br != null) < try < br.close(); >catch (IOException e) < e.printStackTrace(); >> > > >
Extracted value : 31/05/2010 08:05 14 logfile.log Creation Date : 31/05/2010 Creation Time : 08:05

Приведенный выше код все еще работает, но он слишком сложен, чтобы получить время создания файла, если вы не можете обновить JVM; в противном случае, пожалуйста, используйте Java 7+NIO Files.readAttributes .

Скачать Исходный Код

Рекомендации

Источник

Читайте также:  Nginx локальный php сервер
Оцените статью