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);
		}
	}
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