From: elgekko Date: Thu, 26 May 2022 13:38:46 +0000 (+0200) Subject: File listazo lepes, MediaVivantis rekurziv archivalas tamogatasara X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=0bf55d6427dce1ddcc456b2e3dfaedc8b133fe76;p=mediacube.git File listazo lepes, MediaVivantis rekurziv archivalas tamogatasara --- diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/CreateContentListStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/CreateContentListStep.java new file mode 100644 index 00000000..6f7f3933 --- /dev/null +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/CreateContentListStep.java @@ -0,0 +1,69 @@ +package user.jobengine.server.steps; + +import java.io.IOException; +import java.nio.file.FileVisitResult; +import java.nio.file.FileVisitor; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.ArrayList; +import java.util.List; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +public class CreateContentListStep extends JobStep implements FileVisitor { + private static final String NEWLINE = "\n"; + private static final String TAB = "\t"; + private static final Logger logger = LogManager.getLogger(); + private List lines = new ArrayList<>(); + + @StepEntry + public Object[] execute(String sourcePath, String targetFile) throws Exception { + logger.info(getSessionMarker(), "Starting in {}", sourcePath); + try { + Files.walkFileTree(Paths.get(sourcePath), this); + Files.write(Paths.get(targetFile), lines, StandardOpenOption.CREATE); + } catch (Exception e) { + logger.error(getSessionMarker(), "A(z) '{}' mappa elérése sikertelen. A rendszer hibaüzenete: {}", sourcePath, e.getMessage()); + } + return null; + } + + @Override + public FileVisitResult postVisitDirectory(Path paramT, IOException paramIOException) throws IOException { + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attributes) throws IOException { + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult visitFile(Path filePath, BasicFileAttributes attributes) throws IOException { + // logger.info(getSessionMarker(), "Will checked {}", filePath); + try { + StringBuilder line = new StringBuilder(); + line.append(filePath.toAbsolutePath().toString()); + line.append(TAB); + line.append(attributes.size()); + line.append(TAB); + line.append(attributes.creationTime().toString()); + line.append(TAB); + line.append(attributes.lastModifiedTime().toString()); + lines.add(line.toString()); + } catch (Exception e) { + logger.catching(e); + } + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult visitFileFailed(Path filePath, IOException paramIOException) throws IOException { + logger.info("Error archive {}", filePath); + return FileVisitResult.CONTINUE; + } +}