4 * License : The MIT License
5 * Copyright(c) 2010 MikuToga Partners
8 package jp.sourceforge.mikutoga.corelib;
11 * Windowsに特化したFileユーティリティ。
13 public final class WinFile {
16 public static final char SEPARATOR_CHAR = '\\'; // \
18 public static final String SEPARATOR =
19 Character.toString(SEPARATOR_CHAR);
21 public static final String PFX_UNC =
22 SEPARATOR + SEPARATOR; // \\
25 assert '\\' == 0x005c;
33 throw new AssertionError();
37 * Windowsファイル名の正規化を行う。
41 * <li>頭の3回以上連続する\記号は2個の\記号に置き換えられる。
42 * <li>末尾の1回以上連続する\記号は削除。
43 * ただし頭から連続している場合は削除しない。
44 * <li>2回以上連続する\記号は1個の\記号にまとめられる。
45 * ただし頭から連続している場合はまとめない。
50 public static String normalizeWinFileName(CharSequence seq){
51 String text = seq.toString();
52 text = text.replaceAll("^\\\\{3,}", "\\\\\\\\");
53 text = text.replaceAll("(.*[^\\\\])\\\\+$", "$1");
54 text = text.replaceAll("([^\\\\])\\\\{2,}", "$1\\\\");