private void makeDirs(final String key) throws IOException {
		if (dirs == null) {
			dirs = new HashSet();
		}
		int idx = 0;
		int last = 0;
		while ((last = key.indexOf('/', idx + 1)) != -1) {
			final String aDir = key.substring(0, last + 1);
			if (!dirs.contains(aDir)) {
				dirs.add(aDir);
				this.putNextEntry(new ZipEntry(aDir));
				this.closeEntry();
			}
			idx = last;
		}
	}