getNameメソッド - Fileクラス - 萌えJava超入門
Fileクラス

getNameメソッド

抽象パス名のファイル名(又はフォルダ名)部分の文字列を返します。

getName()

目次

1.getNameメソッド


抽象パス名「path」をパス区切り文字で切り分けて、末端(一番右)の文字列を返します。

 public String getName()

getNameメソッド 書式
File file;
 String str = file.getName();

萌えJava超入門
抽象パス名の一部を切り出す文字列操作だ。
実際にそのようなファイルやフォルダが
あっても無くても関係ない。


2.サンプルコード


萌えJava超入門
パス区切り文字は
スラッシュっスね。
//Sample02_03.java

import java.io.File;

class Sample02_03{
    public static void main(String[] args){
      File file = new File("dir01/pathname.txt");
      System.out.println("getPath: " + file.getPath());
      System.out.println("getName: " + file.getName());

    }
}

コマンドライン
>cd ws
ws>javac Sample02_03.java
ws>java Sample02_03
getPath: dir01/pathname.txt
getName: pathname.txt
Linux での実行例です。
Windows の場合は、 '/' を '¥' と読み替えてください。

萌えJava超入門
getPath と getName で比較してみた。
getNameメソッドは
ファイル名だけ返しているだろ?
萌えJava超入門
おお~。
これは簡単。
萌えJava超入門
なるほど。


3.getNameメソッドのソース紹介

getNameメソッドは、Stringクラスで学習した内容で書かれているので、
ソースコードも紹介しますね。
「path」が抽象パス名が代入された String 変数です。

Fileクラス getNameメソッドの抜粋
  private static final FileSystem fs =
                    DefaultFileSystem.getFileSystem();

  public static final char separatorChar = fs.getSeparator();

  public String getName() {
        int index = path.lastIndexOf(separatorChar);
        if (index < prefixLength){
           return path.substring(prefixLength);
        }
        return path.substring(index + 1);
  }
「prefixLength」のくだりは、[ルート名にパス区切り文字が含まれるファイルシステム]の為の回避ですね。

lastIndexOfメソッドで、最後のセパレート文字の位置を確認して、
substringメソッドで、最後のセパレート文字以降を切り出していました。
これらのメソッドについては超入門 第十八章 Stringクラス もご参照ください。

ちなみに「separatorChar」は、実行中のファイルシステムのパスの区切り文字です。

萌えJava超入門
青い文字だけ分かればいいよ。
クラスライブラリと言っても
蓋を開けてみれば単なる文字列操作だ。
簡単だろ?
萌えJava超入門 萌えJava超入門
部分的にわかる
感じっス。




萌えJava超入門
十分だ。



お疲れ様でした。




© 2019 awasekagami