src/main/java/wycc/commands/Install.java
private void addPaths(Path.ID path, HashSet<Path.ID> paths, ZipFile zf) {
		if(path.size() > 0 && !paths.contains(path)) {
			addPaths(path.parent(),paths,zf);
			// A new path encountered
			String directory = path.toString() + "/";
			System.out.println("ADDING DIRECTORY: " + directory);
			zf.add(new ZipEntry(directory), new byte[0]);
			paths.add(path);
		}
	}
private void addPaths(Path.ID path, HashSet<Path.ID> paths, ZipFile zf) {
		if(path.size() > 0 && !paths.contains(path)) {
			addPaths(path.parent(),paths,zf);
			// A new path encountered
			String directory = path.toString() + "/";
			System.out.println("ADDING DIRECTORY: " + directory);
			zf.add(new ZipEntry(directory), new byte[0]);
			paths.add(path);
		}
	}
private void addPaths ( Path . ID path , HashSet < Path . ID > paths , ZipFile zf ) { if ( path . size ( ) > 0 && ! paths . contains ( path ) ) { addPaths ( path . parent ( ) , paths , zf ) ; // A new path encountered String directory = path . toString ( ) + "/" ; System . out . println ( "ADDING DIRECTORY: " + directory ) ; zf . add ( new ZipEntry ( directory ) , new byte [ 0 ] ) ; paths . add ( path ) ; } }
This is a slightly strange method. Basically, it recursively adds directory
entries into the ZipFile. Technically such entries should not be needed.
However, due to a quirk in the way that ZipFileRoot works (in fact,
AbstractFolder to be more precise) these entries are required for now.

@param path
@param paths
@param zf
This is a slightly strange method . Basically it recursively adds directory entries into the ZipFile . Technically such entries should not be needed . However due to a quirk in the way that ZipFileRoot works ( in fact AbstractFolder to be more precise ) these entries are required for now .