ファイル名として不正な文字を任意の文字に置換
とりあえずWindowsの場合ということで…
String src = "abc_ABC_あいう_亜伊卯_アイウ_123_123_\\_/_:_*_?_\"_<_>_.txt"; // [/, *, ?, ", <, >, \] にマッチ Pattern illegalFileNamePattern = Pattern.compile("[(\\|/|:|\\*|?|\"|<|>|\\\\|)]"); String fileName = illegalFileNamePattern.matcher(src).replaceAll("-"); System.out.println("src :"+src); System.out.println("fileName :"+fileName);
実行結果
src :abc_ABC_あいう_亜伊卯_アイウ_123_123_\_/_:_*_?_"_<_>_.txt fileName :abc_ABC_あいう_亜伊卯_アイウ_123_123_-_-_-_-_-_-_-_-_.txt
ファイルパスをOKとする場合
// [\]をスルー Pattern illegalFileNamePattern = Pattern.compile("[(\\|/|:|\\*|?|\"|<|>|)]");