File listazo lepes, MediaVivantis rekurziv archivalas tamogatasara
authorelgekko <vasary@elgekko.net>
Thu, 26 May 2022 13:38:46 +0000 (15:38 +0200)
committerelgekko <vasary@elgekko.net>
Thu, 26 May 2022 13:38:46 +0000 (15:38 +0200)
server/user.jobengine.executors/src/user/jobengine/server/steps/CreateContentListStep.java [new file with mode: 0644]

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 (file)
index 0000000..6f7f393
--- /dev/null
@@ -0,0 +1,69 @@
+package user.jobengine.server.steps;\r
+\r
+import java.io.IOException;\r
+import java.nio.file.FileVisitResult;\r
+import java.nio.file.FileVisitor;\r
+import java.nio.file.Files;\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+import java.nio.file.StandardOpenOption;\r
+import java.nio.file.attribute.BasicFileAttributes;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+\r
+public class CreateContentListStep extends JobStep implements FileVisitor<Path> {\r
+       private static final String NEWLINE = "\n";\r
+       private static final String TAB = "\t";\r
+       private static final Logger logger = LogManager.getLogger();\r
+       private List<String> lines = new ArrayList<>();\r
+\r
+       @StepEntry\r
+       public Object[] execute(String sourcePath, String targetFile) throws Exception {\r
+               logger.info(getSessionMarker(), "Starting in {}", sourcePath);\r
+               try {\r
+                       Files.walkFileTree(Paths.get(sourcePath), this);\r
+                       Files.write(Paths.get(targetFile), lines, StandardOpenOption.CREATE);\r
+               } catch (Exception e) {\r
+                       logger.error(getSessionMarker(), "A(z) '{}' mappa elérése sikertelen. A rendszer hibaüzenete: {}", sourcePath, e.getMessage());\r
+               }\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public FileVisitResult postVisitDirectory(Path paramT, IOException paramIOException) throws IOException {\r
+               return FileVisitResult.CONTINUE;\r
+       }\r
+\r
+       @Override\r
+       public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attributes) throws IOException {\r
+               return FileVisitResult.CONTINUE;\r
+       }\r
+\r
+       @Override\r
+       public FileVisitResult visitFile(Path filePath, BasicFileAttributes attributes) throws IOException {\r
+               // logger.info(getSessionMarker(), "Will checked {}", filePath);\r
+               try {\r
+                       StringBuilder line = new StringBuilder();\r
+                       line.append(filePath.toAbsolutePath().toString());\r
+                       line.append(TAB);\r
+                       line.append(attributes.size());\r
+                       line.append(TAB);\r
+                       line.append(attributes.creationTime().toString());\r
+                       line.append(TAB);\r
+                       line.append(attributes.lastModifiedTime().toString());\r
+                       lines.add(line.toString());\r
+               } catch (Exception e) {\r
+                       logger.catching(e);\r
+               }\r
+               return FileVisitResult.CONTINUE;\r
+       }\r
+\r
+       @Override\r
+       public FileVisitResult visitFileFailed(Path filePath, IOException paramIOException) throws IOException {\r
+               logger.info("Error archive {}", filePath);\r
+               return FileVisitResult.CONTINUE;\r
+       }\r
+}\r