- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2017-06-01T00:35:24+09:00","","")
#navi(../)
* Javaでbasename, dirname [#w5bad198]
シェルスクリプトなどでよく使用する basename, dirname をJavaで実現するサンプルコードを以下に記します。~
#contetns
* basename, dirnameのサンプルソース [#c8152522]
サンプルソースは、basename(ファイル名取得)とdirname(ディレクトリ取得)のサンプルソースになります。~
&ref(FileInfo.java); UTF-8, LF
public class FileInfo {
public static void Usage() {
String me = new Object(){}.getClass().getEnclosingClass().getName();
System.err.println("Usage: java " + me + "path/to/file");
}
public static void main(String args[]) {
if (args.length != 1) {
Usage();
System.exit(1);
}
String filename, dirname, extension;
File f = new File(args[0]);
System.out.println("Path: " + f.getPath());
System.out.println("Parent(dirname): " + f.getParent());
System.out.println("Name(basename): " + f.getName());
}
}
上記のソースは、ファイル名を引数で渡し、ディレクトリ部分とファイル名部分を分けて表示する動作になります。~
getParentメソッドがdirname, getNameメソッドがbasenameに対応します。
* 実行させてみる [#i783a403]
上記サンプルソースをコンパイルし、実際に動作させた時の出力です。
sakura@aspire:~$ javac FileInfo.java
sakura@aspire:~$ echo $?
0
sakura@aspire:~$ java FileInfo
Usage: java FileInfopath/to/file
sakura@aspire:~$ echo $?
1
sakura@aspire:~$ java FileInfo /path/to/file.txt
Path: /path/to/file.txt
Parent(dirname): /path/to
Name(basename): file.txt
sakura@aspire:~$ echo $?
0
sakura@aspire:~$
尚、動作環境はUbutnuを使用しました。
以上、Javaでbasename, dirnameと同等の操作をするFileクラスのメソッドについての説明でした、