ひよっこPGのブログ

主に、技術メモや英語たまにギター関連のことも書いているブログです。

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

ファイルパスからファイル名を取得する場合、Javaの標準ライブラリを使うと
下記のような感じで取得可能。

String path = "C:\\test\\aaa.txt";
File file = new File(path);
file.getName();
//=> "aaa.txt"

ファイルのパスからファイル名を取得するには (basename) | hydroculのメモ


でもこの場合、下記の条件だと上手く取得できない。

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"

自分に不足しているのは、人とのコミュニケーション。

土日、寂しさ・孤独感のあまり眠れない日が続いていた。
自分も明確な理由はわかってなくて、なぜかと考えるきっかけになった。

自分のこれまでの人生振り返ると
学生時代はずっと人間関係から逃げ、心開くことも忘れひたすら逃避のため自己満足や古くからの友人をあてにして生きてきた。

これらのことが積み重なって今がある。

そもそも人間が幸せと感じる要素には、下記のような人とのコミュニケーションから得られるものが半数だと思う。

  • 共感
  • 必要とされる
  • 認めてもらえる

この要素が徐々に不足していったから、寂しい・孤独だと感じたのではないか? と考えた。

良い方向にもっていくために、始めやすいことはないか?

自分は今社内に5人いる場所で、仕事しています。
仕事での付き合いも1年以上です。

いきなり知らない人ではなく、社内の人ともっと心を開く。
仕事場以外でも、会う。
仕事に集中してがんばって、必要とされる・認めたもらえるようになる。
⇨要は、仕事に集中して、仕事仲間と親密になれば上記の不足要素は解消されるはず!

そういう、始めやすいところから自分を変えていけば、寂しさ・孤独感は感じることは少なくなると思う!