Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java =================================================================== diff -u -rb4afa75048185273ee61a4def2164134f343fda0 -r58477cd191e3bc278b06ec3e012c196aedd788dc --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java (.../ExportToolContentService.java) (revision b4afa75048185273ee61a4def2164134f343fda0) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java (.../ExportToolContentService.java) (revision 58477cd191e3bc278b06ec3e012c196aedd788dc) @@ -468,7 +468,7 @@ String secureDir = Configuration.get(ConfigurationKeys.LAMS_EAR_DIR) + File.separator + FileUtil.LAMS_WWW_DIR + File.separator + FileUtil.LAMS_WWW_SECURE_DIR; String ldContentDir = FileUtil.getFullPath(secureDir,ldDto.getContentFolderID()); - if(!FileUtil.isEmptyDirectory(ldContentDir)) { + if(!FileUtil.isEmptyDirectory(ldContentDir, true)) { log.debug("Create export Learning Design content target zip file. File name is " + targetContentZipFileName); ZipFileUtil.createZipFile(targetContentZipFileName, ldContentDir, contentDir); } else { Index: lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java =================================================================== diff -u -r70aab47cedf78d1e44e6e755b36fb095911bed52 -r58477cd191e3bc278b06ec3e012c196aedd788dc --- lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java (.../FileUtil.java) (revision 70aab47cedf78d1e44e6e755b36fb095911bed52) +++ lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java (.../FileUtil.java) (revision 58477cd191e3bc278b06ec3e012c196aedd788dc) @@ -98,17 +98,38 @@ } - public static boolean isEmptyDirectory(String directoryName) throws FileUtilException { + /** Check if this directory is empty. If checkSubdirectories = true, then it also checks its subdirectories to make sure they aren't empty. + * If checkSubdirectories = true and the directory contains empty subdirectories it will return true. + * If checkSubdirectories = false and the directory contains empty subdirectories it will return false. */ + public static boolean isEmptyDirectory(String directoryName, boolean checkSubdirectories) throws FileUtilException { if(directoryName == null || directoryName.length() == 0) throw new FileUtilException("A directory name must be specified"); - File dir = new File(directoryName); - if(dir.exists()) { - if(dir.listFiles().length > 0) - return false; - else + return isEmptyDirectory(new File(directoryName), checkSubdirectories); + + } + + private static boolean isEmptyDirectory(File directory, boolean checkSubdirectories) throws FileUtilException { + + if(directory.exists()) { + File files[] = directory.listFiles(); + + if(files.length > 0) { + if ( ! checkSubdirectories ) { + return false; + } else { + boolean isEmpty = true; + for ( int i=0; i