Java ファイルパスからファイル名のみ取得 Windows / Unix対応 您所在的位置:网站首页 filenameutilsgetname Java ファイルパスからファイル名のみ取得 Windows / Unix対応

Java ファイルパスからファイル名のみ取得 Windows / Unix対応

2023-09-28 10:48| 来源: 网络整理| 查看: 265

ファイルパスからファイル名を取得する場合、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 实验室设备网 版权所有