private void zipDir(String zipName, String dirToZip, File dirToZipFile,
            ZipOutputStream zos, JProgressBar Fortschritt) {
        if (zipName == null || dirToZip == null || dirToZipFile == null
                || zos == null || !dirToZipFile.isDirectory())
            return;
        
        // Inhalt des Übergebenen Ordner durchgehen; wenn File => in Zip-Datei hinzupacken
        // Wenn es ein Ordner ist, ruft sich die Methode selbst auf, um alle Unterordner mit
        // Inhalt sichern zu können
        //FileInputStream fis = null;
        try {
            File[] fileArr = dirToZipFile.listFiles();
            String path;
            for (File f : fileArr) {
                if (f.isDirectory()) { // Ordner gefunden => Rekursion
                    nDirectories++;
                    zipDir(zipName, dirToZip, f, zos, Fortschritt);
                    continue;
                }
                // File => zippen
                path = f.getCanonicalPath(); // Pfad besorgen
                
                // Laufwerksbezeichnung aus Pfad abschneiden
                String name = path.substring(path.indexOf(f.separator)+1 , path.length());
                System.out.println("Packe " + name);
                
                // Eintrag in Logg
                strLog += name;
                // Platformunabhängiger Zeilenumbruch wird in den Stream geschrieben
                strLog += System.getProperty("line.separator");
                
                zipFile(zos, f, name, Fortschritt); // eigentlicher Zip-Vorgang aufrufen
                
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }