Class WinFileSystem

java.lang.Object
com.install4j.api.windows.WinFileSystem

public class WinFileSystem extends Object
Collection of static methods to access Microsoft Windows-specific folder locations and to execute native file system operations.
  • Method Details

    • getSpecialFolder

      public static File getSpecialFolder(SpecialFolder folderType, boolean allUsers)
      Returns Windows-specific directories like the start menu or the desktop.
      Parameters:
      folderType - specifies the requested folder type.
      allUsers - if this parameter is true and if the current user is in the Administrators group, the method returns the requested folder for all users. Otherwise it returns the folder for the current user.
      Returns:
      the requested folder location.
    • getProgramFilesDirectory

      public static File getProgramFilesDirectory()
      Returns the program files directory of the current Windows installation. A typical path is C:\Program Files.
      Returns:
      the program files directory.
    • getCommonFilesDirectory

      public static File getCommonFilesDirectory()
      Returns a folder for components that are shared across applications. A typical path is C:\Program Files\Common Files.
      Returns:
      the common files directory.
    • getProgramDataDirectory

      public static File getProgramDataDirectory()
      Returns the program data directory where applications can save data that is not specific to particular users. A typical path is C:\ProgramData.
      Returns:
      the common files directory.
    • getWindowsDirectory

      public static File getWindowsDirectory()
      Returns the Windows directory. A typical path is C:\Windows.
      Returns:
      the Windows directory.
    • getSystemDirectory

      public static File getSystemDirectory()
      Returns the system directory. A typical path is C:\Windows\system32
      Returns:
      the system directory.
    • createShellLink

      public static boolean createShellLink(File file, File shortcutTo, File iconFile)
      Creates a shell link. Note that Windows might change the link suffix from lnk to pif, if you are linking to a DOS executable or a batch file. This as the same as calling createShellLink(file, shortcutTo, iconFile, null, null)
      Parameters:
      file - the shell link that should be created including the lnk suffix.
      shortcutTo - the file it should link to.
      iconFile - an optional icon file. If null is passed, the default icon of the shortcutTo target will be used.
      Returns:
      whether the link could be created or not.
      See Also:
    • createShellLink

      public static boolean createShellLink(File file, File shortcutTo, File iconFile, String arguments)
      Creates a shell link. Note that Windows might change the link suffix from lnk to pif, if you are linking to a DOS executable or a batch file. This as the same as calling createShellLink(file, shortcutTo, iconFile, arguments, null)
      Parameters:
      file - the shell link that should be created including the lnk suffix.
      shortcutTo - the file it should link to.
      iconFile - an optional icon file. If null is passed, the default icon of the shortcutTo target will be used.
      arguments - the arguments passed to the target.
      Returns:
      whether the link could be created or not.
    • createShellLink

      public static boolean createShellLink(File file, File shortcutTo, File iconFile, String arguments, String description)
      Creates a shell link. Note that Windows might change the link suffix from lnk to pif, if you are linking to a DOS executable or a batch file.
      Parameters:
      file - the shell link that should be created including the lnk suffix.
      shortcutTo - the file it should link to.
      iconFile - an optional icon file. If null is passed, the default icon of the shortcutTo target will be used.
      arguments - the arguments passed to the target.
      description - the description used in the tooltip
      Returns:
      whether the link could be created or not.
    • createShellLink

      public static boolean createShellLink(File file, File shortcutTo, File iconFile, String arguments, String description, File startIn)
      Creates a shell link. Note that Windows might change the link suffix from lnk to pif, if you are linking to a DOS executable or a batch file.
      Parameters:
      file - the shell link that should be created including the lnk suffix.
      shortcutTo - the file it should link to.
      iconFile - an optional icon file. If null is passed, the default icon of the shortcutTo target will be used.
      arguments - the arguments passed to the target.
      description - the description used in the tooltip
      startIn - the working directory for the executable
      Returns:
      whether the link could be created or not.
    • createShellLink

      public static boolean createShellLink(File file, File shortcutTo, File iconFile, String arguments, String description, File startIn, ShowCommand showCommand)
      Creates a shell link. Note that Windows might change the link suffix from lnk to pif, if you are linking to a DOS executable or a batch file.
      Parameters:
      file - the shell link that should be created including the lnk suffix.
      shortcutTo - the file it should link to.
      iconFile - an optional icon file. If null is passed, the default icon of the shortcutTo target will be used.
      arguments - the arguments passed to the target.
      description - the description used in the tooltip
      startIn - the working directory for the executable
      showCommand - the window show command
      Returns:
      whether the link could be created or not.
    • createStartMenuEntry

      public static void createStartMenuEntry(String programGroupName, String entryName, File destination, boolean allUsers, File icon) throws IOException
      Creates a start menu entry.
      Parameters:
      programGroupName - the name of the program group where the entry should be created
      entryName - the name of the menu entry. You can create subfolders with backslashes.
      destination - the file that should be linked to
      allUsers - whether the entry should be created for all users or not
      icon - an optional icon file. If null is passed, the default icon of the destination target will be used.
      Throws:
      IOException - if the start menu entry could not be created
    • createStartMenuEntry

      public static void createStartMenuEntry(String programGroupName, String entryName, File destination, boolean allUsers, File icon, String arguments) throws IOException
      Creates a start menu entry.
      Parameters:
      programGroupName - the name of the program group where the entry should be created
      entryName - the name of the menu entry. You can create subfolders with backslashes.
      destination - the file that should be linked to
      allUsers - whether the entry should be created for all users or not
      icon - an optional icon file. If null is passed, the default icon of the destination target will be used.
      arguments - optional arguments given to the destination. Can be null
      Throws:
      IOException - if the start menu entry could not be created
    • createStartMenuEntry

      public static void createStartMenuEntry(String programGroupName, String entryName, File destination, boolean allUsers, File icon, String arguments, boolean runAsAdministrator) throws IOException
      Creates a start menu entry.
      Parameters:
      programGroupName - the name of the program group where the entry should be created
      entryName - the name of the menu entry. You can create subfolders with backslashes.
      destination - the file that should be linked to
      allUsers - whether the entry should be created for all users or not
      icon - an optional icon file. If null is passed, the default icon of the destination target will be used.
      arguments - optional arguments given to the destination. Can be null
      runAsAdministrator - whether the entry should be run as administrator
      Throws:
      IOException - if the start menu entry could not be created
    • moveWithDelayUntilReboot

      public static boolean moveWithDelayUntilReboot(File source, File destination)
      Calls the win32 API function MoveFileEx with MOVEFILE_DELAY_UNTIL_REBOOT. You must be administrator to call this function.
      Parameters:
      source - the source file. Must be on the same drive as the destination file.
      destination - the destination file. If empty, the source file will be deleted.
      Returns:
      true if the operation could be registered successfully.
    • getDriveType

      public static DriveType getDriveType(File file)
      Tests on what kind of drive the given file is (or would be) located.
      Parameters:
      file - an existing or non-existing file
      Returns:
      a constant of DriveType.