みなさん。 こんばんは。
今日は名前を指定したファイルアトリビュートの取得、設定方法について見ていきましょう。
アトリビュート名を指定してアトリビュートを取得するには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クラスはファイルのタイムスタンプ属性の値を表します。
ファイルアトリビュートの設定が簡単に出来ましたね!
それでは今日はこのへんで!
人気ブログランキングへ
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