--- /dev/null
+package hayashi.tools.files;\r
+import java.io.*;\r
+\r
+/**\r
+ * 指定されたディレクトリを削除する。<br>\r
+ * java hayashi.tools.files.DeleteDir [directory]<br>\r
+ * <br>\r
+ * 指定されたディレクトリがない場合には例外をスローする<br>\r
+ * 削除権限がない場合には例外をスローする<br>\r
+ * <br>\r
+ * (注意)<br>\r
+ * ※ 指定されたディレクトリ内にファイル存在する場合も削除する。<br>\r
+ * ※ 指定されたディレクトリのサブディレクトリも削除対象とします。<br>\r
+ * ※ ディレクトリ自身も削除されます。<br>\r
+ */\r
+public class DeleteDir\r
+{\r
+ public static void main (String args[]) {\r
+ if (args.length < 1) {\r
+ System.out.println("hayashi.tools.files.DeleteDir [directory]");\r
+ return;\r
+ }\r
+ \r
+ try {\r
+ DeleteDir.delete(new File(args[0]));\r
+ }\r
+ catch(Exception e) {\r
+ e.printStackTrace();\r
+ System.out.println(e.toString());\r
+ }\r
+ }\r
+ \r
+ public static void delete(File file) throws IOException {\r
+ if (!file.exists()) {\r
+ System.out.println("ERROR: ファイルまたはディレクトリが見つかりませんでした。");\r
+ throw new IOException("File not found.");\r
+ }\r
+ \r
+ if (file.isDirectory()) {\r
+ File files[] = file.listFiles();\r
+ if (files != null) {\r
+ for (int i=0; i < files.length; i++) {\r
+ delete(files[i]); // 再帰呼び出し\r
+ }\r
+ }\r
+ }\r
+ if (!file.delete()) {\r
+ System.out.println(" ... [ERROR!]");\r
+ }\r
+ return;\r
+ }\r
+}\r