private void dateinamePfadBauen( DatenPset pSet, DatenFilm film, DatenAbo abo, String nname, String ppfad) { // nname und ppfad sind nur belegt, wenn der Download über den DialogAddDownload gestartet wurde // (aus TabFilme) String name; String path; if (!pSet.progsContainPath()) { // dann können wir uns das sparen arr[DatenDownload.DOWNLOAD_ZIEL_DATEINAME_NR] = ""; arr[DatenDownload.DOWNLOAD_ZIEL_PFAD_NR] = ""; return; } // ############################################## // Name // ############################################## if (!nname.equals("")) { // wenn vorgegeben, dann den nehmen name = nname; } else { arr[DatenDownload.DOWNLOAD_ZIEL_DATEINAME_NR] = pSet.getZielDateiname(arr[DOWNLOAD_URL_NR]); name = arr[DatenDownload.DOWNLOAD_ZIEL_DATEINAME_NR]; // ############################## // Name sinnvoll belegen if (name.equals("")) { name = getHeute_yyyyMMdd() + "_" + arr[DatenDownload.DOWNLOAD_THEMA_NR] + "-" + arr[DatenDownload.DOWNLOAD_TITEL_NR] + ".mp4"; } name = replaceString(name, film); // %D ... ersetzen name = FilenameUtils.replaceLeerDateiname(name); // prüfen ob das Suffix 2x vorkommt if (name.length() > 8) { String suf1 = name.substring(name.length() - 8, name.length() - 4); String suf2 = name.substring(name.length() - 4); if (suf1.startsWith(".") && suf2.startsWith(".")) { if (suf1.equalsIgnoreCase(suf2)) { name = name.substring(0, name.length() - 4); } } } // Kürzen if (Boolean.parseBoolean(pSet.arr[DatenPset.PROGRAMMSET_LAENGE_BESCHRAENKEN_NR])) { // nur dann ist was zu tun int laenge = Konstanten.LAENGE_DATEINAME; if (!pSet.arr[DatenPset.PROGRAMMSET_MAX_LAENGE_NR].equals("")) { laenge = Integer.parseInt(pSet.arr[DatenPset.PROGRAMMSET_MAX_LAENGE_NR]); } name = GuiFunktionen.cutName(name, laenge); } } // ############################################## // Pfad // ############################################## if (!ppfad.equals("")) { // wenn vorgegeben, dann den nehmen path = ppfad; } else { arr[DatenDownload.DOWNLOAD_ZIEL_PFAD_NR] = pSet.getZielPfad(); path = arr[DatenDownload.DOWNLOAD_ZIEL_PFAD_NR]; // ############################## // Pfad sinnvoll belegen if (path.equals("")) { // wenn leer, vorbelegen path = GuiFunktionen.getStandardDownloadPath(); } if (abo != null) { // Bei Abos: den Namen des Abos eintragen arr[DatenDownload.DOWNLOAD_ABO_NR] = abo.arr[DatenAbo.ABO_NAME_NR]; if (Boolean.parseBoolean(pSet.arr[DatenPset.PROGRAMMSET_THEMA_ANLEGEN_NR])) { // und Abopfad an den Pfad anhängen // pfad = GuiFunktionen.addsPfad(pfad, // GuiFunktionen.replaceLeerDateiname(abo.arr[DatenAbo.ABO_ZIELPFAD_NR], true/* istDatei // */)); path = GuiFunktionen.addsPfad(path, abo.arr[DatenAbo.ABO_ZIELPFAD_NR]); } } else if (Boolean.parseBoolean(pSet.arr[DatenPset.PROGRAMMSET_THEMA_ANLEGEN_NR])) { // bei Downloads den Namen des Themas an den Zielpfad anhängen path = GuiFunktionen.addsPfad( path, FilenameUtils.replaceLeerDateiname(arr[DatenDownload.DOWNLOAD_THEMA_NR])); } path = replaceString(path, film); // %D ... ersetzen // der vorgegebenen Pfad des Sets wird so genommen wie er ist // pfad = GuiFunktionen.replaceLeerDateiname(pfad, false/* istDatei */, false /* leerEntfernen // */); } if (path.endsWith(File.separator)) { path = path.substring(0, path.length() - 1); } // ########################################################### // zur Sicherheit bei Unsinn im Set if (path.equals("")) { path = GuiFunktionen.getStandardDownloadPath(); } if (name.equals("")) { name = getHeute_yyyyMMdd() + "_" + arr[DatenDownload.DOWNLOAD_THEMA_NR] + "-" + arr[DatenDownload.DOWNLOAD_TITEL_NR] + ".mp4"; } // in Win dürfen die Pfade nicht länger als 255 Zeichen haben (für die Infodatei kommen noch // ".txt" dazu) String[] pathName = {path, name}; GuiFunktionen.checkLengthPath(pathName); arr[DOWNLOAD_ZIEL_DATEINAME_NR] = pathName[1]; arr[DOWNLOAD_ZIEL_PFAD_NR] = pathName[0]; arr[DOWNLOAD_ZIEL_PFAD_DATEINAME_NR] = GuiFunktionen.addsPfad(pathName[0], pathName[1]); }