@Override
	public void explore(ProcessConfiguration config, ExploringThread thread, Explorable parent) throws ExplorationException {
		try {
			ZipFile zip = (ZipFile) parent;
			
			File zipFile = zip.getPath();
			File tempFolder = getTempFolder(zipFile.getName());
			tempFolder.mkdirs();
			
			if (log.isLoggable(Level.FINE)) log.fine("Unzipping " + zipFile + " to " + tempFolder + "... ");
			ZipUtility.unzip(zipFile, tempFolder, null);
			config.closeOnFinish(new FolderDisposer(tempFolder));
			if (log.isLoggable(Level.FINE)) log.fine("Done.");
			
			File[] files = tempFolder.listFiles();
			if (files != null && files.length > 0) { // Yes, it can be null under Windows for virtual folders like "My Music"
				for (File child : files) {
					thread.enqueue(
							zip, 
							child.isDirectory() ? Folder.class.getSimpleName() : SimpleFile.class.getSimpleName(), 
							child
						);
				}
			}
		} catch (Throwable t) {
			throw new ExplorationException("Unable to explore the content of the folder '" + parent + "'", t);
		}
    }