-/*\r
- * Windows File utils\r
- *\r
- * License : The MIT License\r
- * Copyright(c) 2010 MikuToga Partners\r
- */\r
-\r
-package jp.sourceforge.mikutoga.corelib;\r
-\r
-/**\r
- * Windowsに特化したFileユーティリティ。\r
- */\r
-public final class WinFile {\r
-\r
- public static final char SEPARATOR_CHAR = '\\'; // \\r
- public static final String SEPARATOR =\r
- Character.toString(SEPARATOR_CHAR);\r
- public static final String PFX_UNC =\r
- SEPARATOR + SEPARATOR; // \\\r
-\r
- static{\r
- assert '\\' == 0x005c;\r
- }\r
-\r
- /**\r
- * 隠しコンストラクタ。\r
- */\r
- private WinFile(){\r
- assert false;\r
- throw new AssertionError();\r
- }\r
-\r
- /**\r
- * Windowsファイル名の正規化を行う。\r
- * UNCも考慮される。\r
- * 相対パスは相対パスのまま。\r
- * <ul>\r
- * <li>頭の3回以上連続する\記号は2個の\記号に置き換えられる。\r
- * <li>末尾の1回以上連続する\記号は削除。\r
- * ただし頭から連続している場合は削除しない。\r
- * <li>2回以上連続する\記号は1個の\記号にまとめられる。\r
- * ただし頭から連続している場合はまとめない。\r
- * </ul>\r
- * @param seq 対象ファイル名\r
- * @return 正規化されたファイル名\r
- */\r
- public static String normalizeWinFileName(CharSequence seq){\r
- String text = seq.toString();\r
- text = text.replaceAll("^\\\\{3,}", "\\\\\\\\");\r
- text = text.replaceAll("(.*[^\\\\])\\\\+$", "$1");\r
- text = text.replaceAll("([^\\\\])\\\\{2,}", "$1\\\\");\r
- return text;\r
- }\r
-\r
-}\r
+/*
+ * Windows File utils
+ *
+ * License : The MIT License
+ * Copyright(c) 2010 MikuToga Partners
+ */
+
+package jp.sourceforge.mikutoga.corelib;
+
+/**
+ * Windowsに特化したFileユーティリティ。
+ */
+public final class WinFile {
+
+ public static final char SEPARATOR_CHAR = '\\'; // \
+ public static final String SEPARATOR =
+ Character.toString(SEPARATOR_CHAR);
+ public static final String PFX_UNC =
+ SEPARATOR + SEPARATOR; // \\
+
+ static{
+ assert '\\' == 0x005c;
+ }
+
+ /**
+ * 隠しコンストラクタ。
+ */
+ private WinFile(){
+ assert false;
+ throw new AssertionError();
+ }
+
+ /**
+ * Windowsファイル名の正規化を行う。
+ * UNCも考慮される。
+ * 相対パスは相対パスのまま。
+ * <ul>
+ * <li>頭の3回以上連続する\記号は2個の\記号に置き換えられる。
+ * <li>末尾の1回以上連続する\記号は削除。
+ * ただし頭から連続している場合は削除しない。
+ * <li>2回以上連続する\記号は1個の\記号にまとめられる。
+ * ただし頭から連続している場合はまとめない。
+ * </ul>
+ * @param seq 対象ファイル名
+ * @return 正規化されたファイル名
+ */
+ public static String normalizeWinFileName(CharSequence seq){
+ String text = seq.toString();
+ text = text.replaceAll("^\\\\{3,}", "\\\\\\\\");
+ text = text.replaceAll("(.*[^\\\\])\\\\+$", "$1");
+ text = text.replaceAll("([^\\\\])\\\\{2,}", "$1\\\\");
+ return text;
+ }
+
+}