protected void populateChildren(DirectoryMetadata parent) { File[] files = parent.getFilePointer().listFiles(); if(LOG.isDebugEnabled()) { LOG.debug(files.length + " Children of "+parent.getFilePointer().getAbsolutePath()); } for(File file : files) { if(file.isDirectory()) { if(file.isHidden()) { LOG.debug("Skipping hidden directory: "+file.getAbsolutePath()); continue; } DirectoryMetadata dirMeta = new DirectoryMetadata(); parent.getNestedArchives().add(dirMeta); dirMeta.setArchiveMeta(parent); dirMeta.setFilePointer(file); dirMeta.setRelativePath(generateRelativePath(file)); dirMeta.setName(file.getName()); if(LOG.isTraceEnabled()) { LOG.trace("Added child: "+dirMeta.getRelativePath()); } populateChildren(dirMeta); } } }
protected void unfoldRecursion(DirectoryMetadata base, Collection<DirectoryMetadata> archiveMetas) { if(LOG.isDebugEnabled()) { LOG.debug("Directory: "+base.getName()+" Children: "+base.getNestedArchives().size()+" Path: "+base.getFilePointer().getAbsolutePath()); } for (ArchiveMetadata meta : base.getNestedArchives()) { DirectoryMetadata child = (DirectoryMetadata)meta; unfoldRecursion(child, archiveMetas); } archiveMetas.add(base); }
public DirectoryMetadata recursivelyExtract() { DirectoryMetadata dirMeta = new DirectoryMetadata(); dirMeta.setFilePointer(start); dirMeta.setName(start.getName()); dirMeta.setRelativePath("windup"); populateChildren(dirMeta); return dirMeta; }
LOG.info("Interrogating (" + i + " of " + j + "): " + directoryMeta.getRelativePath()); Collection<File> files = FileUtils.listFiles(directoryMeta.getFilePointer(), TrueFileFilter.INSTANCE, null); FilenameUtils.separatorsToSystem(outputDirectory.getAbsolutePath() + File.separatorChar + directoryMeta.getRelativePath())); directoryMeta.setArchiveOutputDirectory(new File(dirOutput));
tempMeta.setFilePointer(targetFile); DirectoryMetadata dirMeta = new DirectoryMetadata(); dirMeta.setRelativePath(targetFile.getParentFile().getPath()); tempMeta.setArchiveMeta(dirMeta);