ExternalFile (install4j API)
Description: declaration: package: com.install4j.api.beans, class: ExternalFile

Package com.install4j.api.beans

# Class ExternalFile

java.lang.Object
java.io.File
com.install4j.api.beans.ExternalFile

All Implemented Interfaces:
  `Serializable`, `Comparable<File>`

public class ExternalFile extends File
Property type for files from outside the distribution tree to be used in beans. Properties of type `java.io.File` refer to files in the distribution tree. For these properties, in the install4j GUI a distribution file chooser will be shown that offers only files configured in the "Files" section of the install4j GUI.

If you use `ExternalFile` as the property type, the install4j GUI will show a regular file chooser for the property that lets you select files from arbitrary locations. The selected file will be packaged with the installer during the compilation phase. The name of the file is changed to a unique name during the compilation. It will be available in a temporary directory when the installer or uninstaller is started and extracted to the `.install4j` directory in the installation directory by the "Install files" action.

Note:At runtime, you have to call `Context.getExternalFile` to transform the property to an absolute file.

See Also:
  - `Context.getExternalFile(ExternalFile, boolean)`
  - Serialized Form

- ## Field Summary

  ### Fields inherited from class java.io.File

  `pathSeparator, pathSeparatorChar, separator, separatorChar`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ExternalFile(String pathname)`
  The constructor will be invoked by the framework.
  `ExternalFile(String pathname, String originalName)`
  The constructor will be invoked by the framework.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  `boolean`
  `exists()`
  `String`
  `getOriginalName()`
  At runtime, the file name will be generated to avoid naming conflicts.

  ### Methods inherited from class java.io.File

  `canExecute, canRead, canWrite, compareTo, createNewFile, createTempFile, createTempFile, delete, deleteOnExit, getAbsoluteFile, getAbsolutePath, getCanonicalFile, getCanonicalPath, getFreeSpace, getName, getParent, getParentFile, getPath, getTotalSpace, getUsableSpace, hashCode, isAbsolute, isDirectory, isFile, isHidden, lastModified, length, list, list, listFiles, listFiles, listFiles, listRoots, mkdir, mkdirs, renameTo, setExecutable, setExecutable, setLastModified, setReadable, setReadable, setReadOnly, setWritable, setWritable, toPath, toString, toURI, toURL`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### ExternalFile

    public ExternalFile(String pathname)
    The constructor will be invoked by the framework.

  - ### ExternalFile

    public ExternalFile(String pathname, String originalName)
    The constructor will be invoked by the framework.

- ## Method Details

  - ### getOriginalName

    public String getOriginalName()
    At runtime, the file name will be generated to avoid naming conflicts. This method returns the original file name.
    Returns:
      the file name

  - ### equals

    public boolean equals(Object obj)
    Overrides:
      `equals` in class `File`

  - ### exists

    public boolean exists()
    Overrides:
      `exists` in class `File`