2016年10月19日水曜日

名前を指定したファイルアトリビュートの取得、設定

みなさん。 こんばんは。

今日は名前を指定したファイルアトリビュートの取得、設定方法について見ていきましょう。

アトリビュート名を指定してアトリビュートを取得するにはFilesクラスのgetAttributeメソッド

を使用します。

まず、アトリビュートの取得について見てみましょう。

// アトリビュート名を指定してアトリビュートを取得
// 対象になるパス
Path path = Paths.get("foo.txt");

// 最終変更日時を取得
FileTime lastModify = (FileTime)Files.getAttribute(path, "lastModifiedTime");

// ファイルサイズを取得
Long size = (Long)Files.getAttribute(path, "size#);

getAttributeメソッドの第1引数はPathオブジェクト、第2引数にアトリビュート名を指定します。

返り値の型がObjectクラスのため、必要に応じてキャストを行います。

また、第3引数の可変長引数になっており、列挙型のLinkOptionでリンクを追うかどうかを

指定することができます。

ここでは、OSによらず取得できるアトリビュートとして、最終更新日のLastModifiedTime、

ファイルサイズのsizeを使用しました。

OSに特有のアトリビュートを取得するには、アトリビュート名にOSを表す接頭語を付加する

必要があります。

Windowsでは"dos"、POSIX準拠のOSでは"posix"を付加します。

例えば、POSIXでオーナを取得したいのであれば、getAttributeメソッドの引数を"posix:owner"

とします。

続いてアトリビュートの設定について見てみましょう。

アトリビュートの設定はsetAttributeメソッドを使用します。

setAttributeメソッドの第1引数はPathオブジェクト、第2引数にアトリビュート名、

第3引数にその値を指定します。

getAttributeメソッドと同様に、第4引数は可変長引数で列挙型のLinkOptionを指定することが

できます。

getAttributeメソッドの返り値がObjectクラスだったのと同様に、

第3引数のアトリビュートの値を示す型もObjectクラスになります。

それではファイルアトリビュートの最終更新日を現在の時間に設定してみましょう。

// アトリビュート名を指定してアトリビュートを設定
// 対象となるパス
Path path = Paths.get("var.txt");

// 最終変更日時を現在時刻に設定
FileTime lastModify = FileTime.fromMillis(System.currentTimeMillis());
Files.setAttribute(path, "LastModifiedTime", lastModify);

FileTimeクラスはファイルのタイムスタンプ属性の値を表します。

ファイルアトリビュートの設定が簡単に出来ましたね!

それでは今日はこのへんで!

人気ブログランキングへ

1 件のコメント:

  1. Pragmatic Play announces new partnership with
    Pragmatic Play has signed a new partnership with casino and esports operator Wolf Gold, featuring their newest games, the latest Apr 온라인 라이브 딜러 카지노 사이트 7, 2021 · Uploaded by Wolf Gold

    返信削除