diff --git a/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/CityGmlZipEntry.java b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/CityGmlZipEntry.java
index fa8d7db2a5c9e5821b8906d5483b4d9e12d719f8..247ebe4de82ed2c178a04803f8804905fef8db99 100644
--- a/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/CityGmlZipEntry.java
+++ b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/CityGmlZipEntry.java
@@ -9,6 +9,7 @@ import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.file.Files;
@@ -45,7 +46,7 @@ public class CityGmlZipEntry {
             try {
                 Files.copy(is, Path.of(tempDir.toString(), entry.getName()));
                 CityGmlParser.gagLogger(true);
-                cgzEntry.model = CityGmlParser.parseCityGmlFile(tempDir.toString() + "\\" + entry.getName(), config);
+                cgzEntry.model = CityGmlParser.parseCityGmlFile(tempDir.toString() + File.separator + entry.getName(), config);
             } catch (CityGmlParseException | InvalidGmlFileException e) {
                 logger.error(e);
                 cgzEntry.erroneousEntry = true;
diff --git a/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/utils/ArchivePacker.java b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/utils/ArchivePacker.java
index 7bbfab84be90d6b0ab6151d475021b0664a320d2..bdee9ed48ea83bf322f7ece8f48bb9aea628382a 100644
--- a/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/utils/ArchivePacker.java
+++ b/CityDoctorParent/Extensions/CityDoctorZipLoader/src/main/java/de/hft/stuttgart/citydoctor2/ziploader/utils/ArchivePacker.java
@@ -11,6 +11,7 @@ import java.io.*;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
@@ -34,7 +35,7 @@ public class ArchivePacker {
                     continue;
                 }
                 CityDoctorModel model = entry.getModel();
-                String filename = tmpDir.toString() + "\\" + entry.getFileName();
+                String filename = tmpDir.toString() + File.separator + entry.getFileName();
                 model.saveAs(filename, entry.isValidated());
             }
             zipDirectory(targetPath, tmpDir.toString());
@@ -53,15 +54,11 @@ public class ArchivePacker {
     }
 
     private static void zipDirectory(String targetPath, String sourcePath){
-        List<String> fileList = new ArrayList<>();
         File directory = new File(sourcePath);
-        for (String file : directory.list()){
-            fileList.add(file);
-        }
+        List<String> fileList = new ArrayList<>(Arrays.asList(directory.list()));
 
         byte[] buffer = new byte[1024];
-        String source = new File(sourcePath).getName();
-        FileOutputStream fos = null;
+        FileOutputStream fos;
         ZipOutputStream zos = null;
         try {
             fos = new FileOutputStream(targetPath);
@@ -71,7 +68,8 @@ public class ArchivePacker {
                 ZipEntry ze = new ZipEntry(file);
                 zos.putNextEntry(ze);
                 try {
-                    in = new FileInputStream(sourcePath +"\\" + file);
+                    Path sourceFile = Path.of(sourcePath+File.separator+file);
+                    in = new FileInputStream(sourceFile.toAbsolutePath().toString());
                     int len;
                     while ((len = in.read(buffer)) > 0) {
                         zos.write(buffer, 0, len);
@@ -87,10 +85,12 @@ public class ArchivePacker {
         } catch (IOException e) {
             logger.error(e);
         } finally {
-            try {
-                zos.close();
-            } catch (IOException e) {
-                logger.error(e);
+            if (zos != null) {
+                try {
+                    zos.close();
+                } catch (IOException e) {
+                    logger.error(e);
+                }
             }
         }
     }