Java ファイルパスからファイル名のみ取得 Windows / Unix対応 | 您所在的位置:网站首页 › filenameutilsgetname › Java ファイルパスからファイル名のみ取得 Windows / Unix対応 |
ファイルパスからファイル名を取得する場合、Javaの標準ライブラリを使うと 下記のような感じで取得可能。 String path = "C:\\test\\aaa.txt"; File file = new File(path); file.getName(); //=> "aaa.txt"ファイルのパスからファイル名を取得するには (basename) | hydroculのメモ でもこの場合、下記の条件だと上手く取得できない。 Cent OS(Linux)上でJava VMを動かす Windowsのパス形式を渡すLinuxで動作しながら、Windowsのパス形式を渡すと下記のような実行結果になる。 String path = "C:\\test\\aaa.txt"; File file = new File(path); file.getName(); //=> "C:\\test\\aaa.txt" 動作環境に影響されずに、Windows / Unixのパス形式どちらも対応させるためにはどうすればよいか?ApacheCommonsの FilenameUtils.getName()を参考にしました。 commons-io/FilenameUtils.java at master · apache/commons-io · GitHub final char UNIX_SEPARATOR = '/'; final char WINDOWS_SEPARATOR = '\\'; String path = "C:\\test\\aaa.txt"; final int lastUnixPos = path.lastIndexOf(UNIX_SEPARATOR); final int lastWindowsPos = path.lastIndexOf(WINDOWS_SEPARATOR); int point = Math.max(lastUnixPos, lastWindowsPos); path.substring(point + 1); //=> "aaa.txt" |
CopyRight 2018-2019 实验室设备网 版权所有 |