private void buildEntries(File file, boolean recursive) {
		if (!file.equals(this.root)) {
			String name = file.toURI().getPath()
					.substring(this.root.toURI().getPath().length());
			FileEntry entry = new FileEntry(new AsciiBytes(name), file);
			this.entries.put(entry.getName(), entry);
		}
		if (file.isDirectory()) {
			File[] files = file.listFiles();
			if (files == null) {
				return;
			}
			for (File child : files) {
				if (!SKIPPED_NAMES.contains(child.getName())) {
					if (file.equals(this.root) || recursive
							|| file.getName().equals("META-INF")) {
						buildEntries(child, recursive);
					}
				}
			}
		}
	}