From 32d5dfdb17806fef5a8228acbb28655310068948 Mon Sep 17 00:00:00 2001 From: Tobias Koch Date: Thu, 6 Mar 2025 15:02:25 +0100 Subject: [PATCH] Remove slashes from filenames (#1057) Co-authored-by: KochTobi --- .../files/export/FileNameFormatter.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/user-interface/src/main/java/life/qbic/datamanager/files/export/FileNameFormatter.java b/user-interface/src/main/java/life/qbic/datamanager/files/export/FileNameFormatter.java index 861cdbc46..f2cd1e66f 100644 --- a/user-interface/src/main/java/life/qbic/datamanager/files/export/FileNameFormatter.java +++ b/user-interface/src/main/java/life/qbic/datamanager/files/export/FileNameFormatter.java @@ -9,6 +9,7 @@ public class FileNameFormatter { private static final String PART_JOINER = "_"; private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + private static final String SLASH_REPLACEMENT = "_"; private FileNameFormatter() { @@ -19,18 +20,26 @@ public static String formatWithTimestampedContext(LocalDate timestamp, String pr String experimentPart, String type, String extension) { return DATE_FORMATTER.format(timestamp) + PART_JOINER - + replaceSpaces(projectPart) + + replaceForbiddenCharacters(projectPart) + PART_JOINER - + replaceSpaces(experimentPart) + + replaceForbiddenCharacters(experimentPart) + PART_JOINER - + replaceSpaces(type) - + "." + replaceSpaces(extension); + + replaceForbiddenCharacters(type) + + "." + replaceForbiddenCharacters(extension); + } + + private static String replaceForbiddenCharacters(String input) { + return replaceSlashes(replaceSpaces(input)); } private static String replaceSpaces(String projectPart) { return projectPart.replaceAll("\\s", SPACE_REPLACEMENT); } + private static String replaceSlashes(String input) { + return input.replace("/", SLASH_REPLACEMENT); + } + public static String formatWithVersion(String filename, int version, String extension) { return replaceSpaces(filename) + "_" + "v" + version + "." + replaceSpaces(extension);