--- /dev/null
+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