#author("2017-06-01T00:36:17+09:00","","")
#author("2017-06-01T00:36:35+09:00","","")
#navi(../)

* Javaでbasename, dirname [#w5bad198]
シェルスクリプトなどでよく使用する basename, dirname をJavaで実現するサンプルコードを以下に記します。~

#contents

* basename, dirnameのサンプルソース [#c8152522]
サンプルソースは、basename(ファイル名取得)とdirname(ディレクトリ取得)のサンプルソースになります。~
サンプルソースは、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クラスのメソッドについての説明でした、

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS