Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get proper file creation date of file?

Tags:

java

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

like image 707
Igor Kostenko Avatar asked Jan 10 '14 00:01

Igor Kostenko


Video Answer


2 Answers

How to get the creation date of a file in Java, using BasicFileAttributes class, this is an example:

   Path path = Paths.get("C:\\Users\\jorgesys\\workspaceJava\\myfile.txt");
    BasicFileAttributes attr;
    try {
    attr = Files.readAttributes(path, BasicFileAttributes.class);

    System.out.println("Creation date: " + attr.creationTime());

    } catch (IOException e) {
    System.out.println("oops error! " + e.getMessage());
    }
like image 132
Jorgesys Avatar answered Oct 06 '22 10:10

Jorgesys


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 FileAttributeViews 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
like image 39
Eliza Weisman Avatar answered Oct 06 '22 11:10

Eliza Weisman