Version 2.0.0 (small API change)
[nikiroo-utils.git] / src / be / nikiroo / utils / IOUtils.java
index 09b0cb9f1cc989815f84f67a6ff1109fdc7097c8..83dcd502b242fb26d88b611b1d7ff4e7d1a30c17 100644 (file)
@@ -43,7 +43,7 @@ public class IOUtils {
         * 
         * @param in
         *            the data source
-        * @param target
+        * @param out
         *            the target {@link OutputStream}
         * 
         * @throws IOException
@@ -112,7 +112,7 @@ public class IOUtils {
         *            the source {@link File} (which can be a directory)
         * @param dest
         *            the destination <tt>.zip</tt> file
-        * @param srctIsRoot
+        * @param srcIsRoot
         *            FALSE if we need to add a {@link ZipEntry} for src, TRUE to
         *            add it at the root of the ZIP
         * 
@@ -196,20 +196,32 @@ public class IOUtils {
         *            the target to delete
         */
        public static void deltree(File target) {
-               for (File file : target.listFiles()) {
-                       if (file.isDirectory()) {
+               File[] files = target.listFiles();
+               if (files != null) {
+                       for (File file : files) {
                                deltree(file);
-                       } else {
-                               if (!file.delete()) {
-                                       System.err.println("Cannot delete file: "
-                                                       + file.getAbsolutePath());
-                               }
                        }
                }
 
                if (!target.delete()) {
-                       System.err.println("Cannot delete file: "
-                                       + target.getAbsolutePath());
+                       System.err.println("Cannot delete: " + target.getAbsolutePath());
                }
        }
+
+       /**
+        * Open the given /-separated resource (from the binary root).
+        * 
+        * @param name
+        *            the resource name
+        * 
+        * @return the opened resource if found, NLL if not
+        */
+       public static InputStream openResource(String name) {
+               ClassLoader loader = IOUtils.class.getClassLoader();
+               if (loader == null) {
+                       loader = ClassLoader.getSystemClassLoader();
+               }
+
+               return loader.getResourceAsStream(name);
+       }
 }