public DirectoryMetadata recursivelyExtract() { DirectoryMetadata dirMeta = new DirectoryMetadata(); dirMeta.setFilePointer(start); dirMeta.setName(start.getName()); dirMeta.setRelativePath("windup"); populateChildren(dirMeta); return dirMeta; }
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); } } }
dirMeta.setRelativePath(targetFile.getParentFile().getPath()); tempMeta.setArchiveMeta(dirMeta);