「Java 11」Windows(Linux)のファイルパス名からファイル名を取得するサンプル
環境
JavaSE 11
Spring Tool Suite 4
構文
1.正規表現式
(\\\\|/){1}
2つの条件のどちらか一方に一致することを判定します。
windowsの場合、ファイルパス名「\\」を付けます
linuxの場合、ファイルのパス名「/」を付けます。
2.public String[] split(String regex [,int limit])
regex:区切り文字(正規表現) limit:最大の分割数
splitメソッドは、正規表現(引数regex)にマッチした位置で文字列を分割し、分割した結果を文字列配列として返します。
3.文字列の配列の最後要素を取得します
String[] 配列名 = new String「要素の数」
String 変数名 = 配列名「要素の数-1」
使用例
package com.arkgame.study; public class FileDemo { // ファイルパス スラッシュ private static final String FILEPATTERN = "(\\\\|/){1}"; public static void main(String[] args) { // Windowsの場合 ファイルパスの形式 String path = "C:\\java\\test01.csv"; // linuxの場合 ファイルパスの形式 String path2 = "/var/data/test02.txt"; //関数を呼び出す(windows形式) String result1 = getFileName(path); System.out.println("Windows ファイル名1: " + result1); //関数を呼び出す(linuxc形式) String result2 = getFileName(path2); System.out.println("Linux ファイル名2: " + result2); } /** * ファイル名を取得する * * @param orgFname * @return */ static protected String getFileName(String orgFname) { // ファイルのパスを格納する配列 区切り文字 正規表現 String[] fileArr = orgFname.split(FILEPATTERN); // 配列の最後要素取得 String flname = fileArr[fileArr.length - 1]; //ファイル名を返す return flname; } }
実行結果
Windows ファイル名1: test01.csv
Linux ファイル名2: test02.txt