How to get proper file creation date of file?

file, java

Solution

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

Problem

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

Original source

Related problems