Question

How can I direct the installer to ask the user to enter a file or directory?

How can I direct the installer to ask the user to enter a file or directory?

Answer:

You can direct the installer to ask the user to enter a file or directory using a file or directory parameter. You will have to include a section like the following inside the parameterList section of your installer project file.

<directoryParameter>
       <name>mydir</name>
       <value></value>
       <title>Title for you directory page</title>
       <description>Some Directory</description>
       <explanation>Please specify the directory requested</explanation>
       <default></default>
       <cliOptionName>prefix</cliOptionName>
       <ask>yes</ask>
       <mustBeWritable>yes</mustBeWritable>
</directoryParameter>

This will create an installer environment variable called mydir that will contain the directory or file introduced by the user. You can later refer to the value of the variable using ${mydir}.

Attached File

directory.xml


<project>
    <shortName>sample</shortName>
    <fullName>Sample Project</fullName>
    <version>1.0</version>
    <installerFilename></installerFilename>
    <readmeFile></readmeFile>
    <licenseFile></licenseFile>
    <wrapLicenseFileText>1</wrapLicenseFileText>
    <leftImage></leftImage>
    <logoImage></logoImage>
    <splashImage></splashImage>
    <defaultLanguage></defaultLanguage>
    <allowLanguageSelection>0</allowLanguageSelection>
    <postInstallationScript></postInstallationScript>
    <postInstallationScriptArguments></postInstallationScriptArguments>
    <showPostInstallationScriptResult>0</showPostInstallationScriptResult>
    <preUninstallationScript></preUninstallationScript>
    <preUninstallationScriptArguments></preUninstallationScriptArguments>
    <allowedLanguages></allowedLanguages>
    <cdromDirectory>${product_shortname}-${product_version}-cdrom</cdromDirectory>
    <cdromDiskSize>700000000</cdromDiskSize>
    <cdromFirstDiskSize>650000000</cdromFirstDiskSize>
    <defaultUnixDirectoryPermissions>755</defaultUnixDirectoryPermissions>
    <defaultUnixFilePermissions>644</defaultUnixFilePermissions>
    <outputDirectory>${installbuilder_install_root}/output</outputDirectory>
    <projectSchemaVersion>1.2</projectSchemaVersion>
    <saveRelativePaths>0</saveRelativePaths>
    <slideShowLoop>1</slideShowLoop>
    <slideShowTiming>5</slideShowTiming>
    <startMenuGroupName>${product_fullname}</startMenuGroupName>
    <style>standard</style>
    <uninstallerDirectory></uninstallerDirectory>
    <validatorProgram></validatorProgram>
    <componentList>
        <component>
            <name>default</name>
            <description>Default Component</description>
            <canBeEdited>1</canBeEdited>
            <detailedDescription></detailedDescription>
            <selected>1</selected>
            <show>1</show>
            <desktopShortcutList/>
            <folderList>
                <folder>
                    <description>Program Files</description>
                    <destination>${installdir}</destination>
                    <name>programfiles</name>
                    <platforms>all</platforms>
                    <shortcutList>
                        <shortcut>
                            <comment>Uninstall</comment>
                            <exec>${installdir}/uninstall</exec>
                            <icon></icon>
                            <name>Uninstall ${product_fullname}</name>
                            <path>${installdir}</path>
                            <platforms>all</platforms>
                            <windowsExec>${installdir}/uninstall.exe</windowsExec>
                            <windowsExecArgs></windowsExecArgs>
                            <windowsIcon></windowsIcon>
                            <windowsPath>${installdir}</windowsPath>
                        </shortcut>
                    </shortcutList>
                </folder>
                <folder>
                    <description>Program Files</description>
                    <destination>${installdir}</destination>
                    <name>programfileslinux</name>
                    <platforms>linux</platforms>
                </folder>
                <folder>
                    <description>Program Files</description>
                    <destination>${installdir}</destination>
                    <name>programfileswindows</name>
                    <platforms>windows</platforms>
                </folder>
            </folderList>
            <startMenuShortcutList>
                <startMenuShortcut>
                    <comment>Uninstall ${product_fullname}</comment>
                    <name>Uninstall ${product_fullname}</name>
                    <windowsExec>${installdir}/uninstall.exe</windowsExec>
                    <windowsExecArgs></windowsExecArgs>
                    <windowsIcon></windowsIcon>
                    <windowsPath>${installdir}/</windowsPath>
                </startMenuShortcut>
            </startMenuShortcutList>
        </component>
    </componentList>
    <customLanguageFileList/>
    <fileList/>
    <parameterList>
        <directoryParameter>
            <name>installdir</name>
            <title></title>
            <description>Installer.Parameter.installdir.description</description>
            <explanation>Installer.Parameter.installdir.explanation</explanation>
            <value></value>
            <default>${platform_install_prefix}/${product_shortname}-${product_version}</default>
            <allowEmptyValue>0</allowEmptyValue>
            <ask>yes</ask>
            <cliOptionName>prefix</cliOptionName>
            <leftImage></leftImage>
            <mustBeWritable>yes</mustBeWritable>
            <mustExist>0</mustExist>
            <width>40</width>
        </directoryParameter>
        <directoryParameter>
            <name>mydir</name>
            <value></value>
            <title>Title for you directory page</title>
            <description>Some Directory</description>
            <explanation>Please specify the directory requested</explanation>
            <default></default>
            <cliOptionName>prefix</cliOptionName>
            <ask>yes</ask>
            <mustBeWritable>yes</mustBeWritable>
        </directoryParameter>
    </parameterList>
    <platformOptionsList/>
    <postInstallationActionList/>
    <preBuildActionList/>
    <preInstallationActionList/>
    <preUninstallationActionList/>
    <slideShowImageList/>
</project>