前提・実現したいこと
javaでファイルパス文字列
"C:\testDir\parentDir\childDir\targetFile.txt"
を、フォルダの階層ごとに分割したい。
単純にFile.separatorを指定して分割しようとすると、正規表現のパターン不正となり動かないのはわかりました。
回避する方法もとりあえず、File.separatorの文字を判断(windows準拠かUNIX準拠か)して、
それぞれのシステムとして正しいセパレータとなるように正規表現のパターン文字列を返してやればよいとわかりました。
しかし、ファイルパスを分割しようとした場合このやり方しかないのでしょうか?
おそらく、ファイルパスを分割する処理というのはよくやる処理だと思っており、
よくやる処理にもかかわらず、世の中のシステムでは毎回この処理を行っているのかなと不思議に思い質問しました。
該当のソースコード
java
1// これは動かない 2String filePath = "C:\testDir\parentDir\childDir\targetFile.txt"; 3String[] paths = filePath.split(File.separator); 4 5/* 6以下のエラーとなる 7 Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 8 \ 9 ^ 10*/
java
1// こうすれば動く 2// けど、みんな毎回これを書くの? 3String filePath = "C:\testDir\parentDir\childDir\targetFile.txt"; 4String[] paths = filePath.split(File.separator.equals("\") ? "\\": "/");

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/31 05:40