今日はJavaSE7から導入されたPathインターフェースの絶対パス取得について
JavaSE6の方法と比較しながら見てきましょう。
まず相対パスから絶対パスに変換する処理
今までのJavaSE6の絶対パスの取得方法は
File file = new File("var.txt"); // ファイルオブジェクトの生成
String absolutePath = file.getAbsolutePath(); // 絶対パスの取得
JavaSE7のパスインターフェースの機能を使い絶対パスを取得する方法は
Path path = Paths.get("var.txt"); // パスオブジェクトの生成
Path absolutePath = path.toAbsolutePath();
なお、カレントディレクトリを表す "." や親ディレクトリを表す ".." を含む場合、
以下のように記述することでパスを正規化できます。
JavaSE6
File file = new File("C:\\Users\\kume\\..\\test.txt");
String path = file.getCanonicalPath(); // 正規化したパスを取得
System.out.println(path); // C:\Users\test.txt
File normalized = file.getCanonicalFile(); // C:\Users\test.txt
JavaSE7
Path path = Paths.get(".var.txt");
path = path.normalize(); // normalizeメソッドは冗長なパスを簡潔にするメソッド
Path absolutePath = path.toAbsolutePath(); // 絶対パスに変換
System.out.println(absolutePath); // C:\Users\var.txt
normalize()メソッドを経ずに絶対パスに変換した場合、「C:\Users\.\var.txt」と表示されます。
今日はここまでにしておきましょう。
明日もPathインターフェース機能の続きを見てみます。
人気ブログランキングへ
0 件のコメント:
コメントを投稿