Index: lams_common/build.xml =================================================================== diff -u -r2e71958d5ce8fd25642197ffcf432754daa7cf00 -rbad08c13deb4bc303c07eb851957e0807d63e570 --- lams_common/build.xml (.../build.xml) (revision 2e71958d5ce8fd25642197ffcf432754daa7cf00) +++ lams_common/build.xml (.../build.xml) (revision bad08c13deb4bc303c07eb851957e0807d63e570) @@ -210,7 +210,7 @@ - + Index: lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java =================================================================== diff -u -r4fa4ba3d40e23d923eda065a946fab6701d6418f -rbad08c13deb4bc303c07eb851957e0807d63e570 --- lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java (.../FileUtil.java) (revision 4fa4ba3d40e23d923eda065a946fab6701d6418f) +++ lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java (.../FileUtil.java) (revision bad08c13deb4bc303c07eb851957e0807d63e570) @@ -344,12 +344,17 @@ fullpath = path + file; else fullpath = path + File.separator + file; + + return makeCanonicalPath(fullpath); + + } + + public static String makeCanonicalPath(String pathfile){ if(File.separator.indexOf("\\") != -1) - fullpath = fullpath.replaceAll("\\/","\\\\"); + pathfile = pathfile.replaceAll("\\/","\\\\"); else - fullpath = fullpath.replaceAll("\\\\",File.separator); + pathfile = pathfile.replaceAll("\\\\",File.separator); - return fullpath; - + return pathfile; } } Index: lams_common/src/java/org/lamsfoundation/lams/util/zipfile/ZipFileUtil.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -rbad08c13deb4bc303c07eb851957e0807d63e570 --- lams_common/src/java/org/lamsfoundation/lams/util/zipfile/ZipFileUtil.java (.../ZipFileUtil.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/util/zipfile/ZipFileUtil.java (.../ZipFileUtil.java) (revision bad08c13deb4bc303c07eb851957e0807d63e570) @@ -175,10 +175,15 @@ * @param destName */ private static void prepareDirectory(String destName) { + //It must sort out the directory information to current OS. + //e.g, if zip file is zipped under windows, but unzip in linux. + destName = FileUtil.makeCanonicalPath(destName); File destNameFile = new File(destName); String path = destNameFile.getParent(); - File pathDir = new File(path); - pathDir.mkdirs(); + if(path != null){ + File pathDir = new File(path); + pathDir.mkdirs(); + } } /** Delete a temporary directory.