2016年10月17日月曜日

ファイルのアトリビュート取得

皆さん。 こんばんは。

今日はあいにくの雨でしたね。

最近涼しくなってきて、気温も調度よく過ごしやすくなってきました。

今日はファイルのアトリビュートについて見ていきましょう。

今までのFileクラスでは、様々なOSに共通しているアトリビュートしか扱うことが出来ませんでした。

JavaSE7/8からは、OSごとに扱えるアトリビュートを定義し、Javaが動作するOSによって

切り替えられるようにしています。

また、共通しているアトリビュートは簡単に取得できるようになっています。

それでは具体的に見ていきましょう。

// Filesクラスのアトリビュート取得メソッドの使用例
// 対象となるパス
Path path = Paths.get("var.txt");
// 最終変更日時を取得
FileTime time = FIles.getLastModifiedTime(path);
System.out.println("Last Modify: " + time);
if(!System.getProperty("os.name").contains("Windows")) {
            // パーミッションを取得(Windowsは不可)
            Set<PosixFilePermission> permissions = Files.getPosixFilePermissions(path);
            // パーミッションをUnixの文字列表記に変換する
            System.out.println("Permissions: " + PosixFilePermissions.toString(permissions));
} else {
            // ファイルが実行可能か?
            System.out.println("Executable: " + Files.isExecutable(path));
            // ファイルが読み取り可能か?
            System.out.println("Readable: " + Files.isReadable(path));
            // ファイルが書き込み可能か?
            System.out.println("Writable: " + Files.isWritable(path));
}

PosixFilePermissionsクラスを使うことで、UNIXでおなじみの rwxrw-r-- のような

パーミッション表示への変換などを行うことができます。

取得した属性情報をもとに処理を制御するような使われ方をするでしょう。

今日はここまでにしたいと思います。

それではまた!

人気ブログランキングへ

0 件のコメント:

コメントを投稿