Javaでのファイル作成日を決定する

1. 概要

JDK 7では、ファイルの作成日を取得する機能が導入されました。
このチュートリアルでは、_java.nio_を使用してアクセスする方法を学習します。

2. Files.getAttribute

ファイルの作成日を取得する1つの方法は、特定の_Path_で*メソッド* _ * Files.getAttribute * _を使用することです。
try {
    FileTime creationTime = (FileTime) Files.getAttribute(path, "creationTime");
} catch (IOException ex) {
    // handle exception
}
_creationTime_の型は_FileTime_ですが、*メソッドが_Objectを返すという事実のために、それをキャストする必要があります*。
_FileTime_は、日付値をタイムスタンプ属性として保持します。 たとえば、_toInstant()_メソッドを使用して_Instant_に変換できます。
ファイルシステムがファイルの作成日を保存しない場合、メソッドは_null_を返します。

3. Files.readAttributes

作成日を取得する別の方法は、* _ Files.readAttributes_を使用することです。これは、指定された_Path、_に対して、ファイルのすべての基本属性*を一度に返します。
try {
    BasicFileAttributes attr = Files.readAttributes(path, BasicFileAttributes.class);
    FileTime fileTime = attr.creationTime();
} catch (IOException ex) {
    // handle exception
}
このメソッドは、_BasicFileAttributes_を返します。これを使用して、ファイルの基本属性を取得できます。 メソッド_creationTime()_は、ファイルの作成日を_FileTime_として返します。
今回は、ファイルシステムがファイルの作成日を保存しない場合、*メソッドは最終変更日*を返します。 最終更新日も保存されていない場合、エポック(01.01.1970)が返されます。

4. 結論

このチュートリアルでは、Javaでファイルの作成日を決定する方法を学びました。 具体的には、__Files.getAttribute __and _Files.readAttributes_でできることを学びました。
いつものように、例のコードはhttps://github.com/eugenp/tutorials/tree/master/core-java-modules/core-java-nio[GitHubで]から入手できます。