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 {
15 public static final char SEPARATOR_CHAR = '\\'; // \
16 public static final String SEPARATOR =
17 Character.toString(SEPARATOR_CHAR);
18 public static final String PFX_UNC =
19 SEPARATOR + SEPARATOR; // \\
22 assert '\\' == 0x005c;
30 throw new AssertionError();
34 * Windowsファイル名の正規化を行う。
38 * <li>頭の3回以上連続する\記号は2個の\記号に置き換えられる。
39 * <li>末尾の1回以上連続する\記号は削除。
40 * ただし頭から連続している場合は削除しない。
41 * <li>2回以上連続する\記号は1個の\記号にまとめられる。
42 * ただし頭から連続している場合はまとめない。
47 public static String normalizeWinFileName(CharSequence seq){
48 String text = seq.toString();
49 text = text.replaceAll("^\\\\{3,}", "\\\\\\\\");
50 text = text.replaceAll("(.*[^\\\\])\\\\+$", "$1");
51 text = text.replaceAll("([^\\\\])\\\\{2,}", "$1\\\\");