< prev index next >

src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinMsiBundler.java

Print this page

        

*** 28,38 **** import java.io.*; import java.nio.charset.Charset; import java.nio.file.Files; import java.text.MessageFormat; import java.util.*; - import java.util.regex.Matcher; import java.util.regex.Pattern; import static jdk.jpackage.internal.WindowsBundlerParam.*; public class WinMsiBundler extends AbstractBundler { --- 28,37 ----
*** 963,982 **** } else { // install to user folder out.println( " <Directory Name=\"AppData\" Id=\"LocalAppDataFolder\">"); } out.println(" <Directory Id=\"APPLICATIONFOLDER\" Name=\"" ! + APP_NAME.fetchFrom(params) + "\">"); // dynamic part id = 0; compId = 0; // reset counters walkFileTree(params, WIN_APP_IMAGE.fetchFrom(params), out, " "); // closing out.println(" </Directory>"); out.println(" </Directory>"); // for shortcuts if (SHORTCUT_HINT.fetchFrom(params)) { out.println(" <Directory Id=\"DesktopFolder\" />"); --- 962,992 ---- } else { // install to user folder out.println( " <Directory Name=\"AppData\" Id=\"LocalAppDataFolder\">"); } + + // We should get valid folder or subfolders + String installDir = WINDOWS_INSTALL_DIR.fetchFrom(params); + String [] installDirs = installDir.split(Pattern.quote("\\")); + for (int i = 0; i < (installDirs.length - 1); i++) { + out.println(" <Directory Id=\"SUBDIR" + i + "\" Name=\"" + + installDirs[i] + "\">"); + } + out.println(" <Directory Id=\"APPLICATIONFOLDER\" Name=\"" ! + installDirs[installDirs.length - 1] + "\">"); // dynamic part id = 0; compId = 0; // reset counters walkFileTree(params, WIN_APP_IMAGE.fetchFrom(params), out, " "); // closing + for (int i = 0; i < installDirs.length; i++) { out.println(" </Directory>"); + } out.println(" </Directory>"); // for shortcuts if (SHORTCUT_HINT.fetchFrom(params)) { out.println(" <Directory Id=\"DesktopFolder\" />");
< prev index next >