/** * Add a directory entry to the archive using a specified * Unix-mode and the default mode for its parent directories (if * necessary). */ private void addDirectoryResource(final Resource r, String name, final String prefix, final File base, final ZipOutputStream zOut, final int defaultDirMode, final int thisDirMode) throws IOException { if (!name.endsWith("/")) { name += "/"; } final int nextToLastSlash = name.lastIndexOf('/', name.length() - 2); if (nextToLastSlash != -1) { addParentDirs(base, name.substring(0, nextToLastSlash + 1), zOut, prefix, defaultDirMode); } zipDir(r, zOut, prefix + name, thisDirMode, r instanceof ZipResource ? ((ZipResource) r).getExtraFields() : null); }
prefix += "/"; addParentDirs(null, prefix, zOut, "", dirMode); addParentDirs(base, name, zOut, prefix, dirMode);
addParentDirs(base, name, zOut, "", ArchiveFileSet.DEFAULT_DIR_MODE);