「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

Java

Posted by arkgame