Class WinFileSystem


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

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean createShellLink​(java.io.File file, java.io.File shortcutTo, java.io.File iconFile)
      Creates a shell link.
      static boolean createShellLink​(java.io.File file, java.io.File shortcutTo, java.io.File iconFile, java.lang.String arguments)
      Creates a shell link.
      static boolean createShellLink​(java.io.File file, java.io.File shortcutTo, java.io.File iconFile, java.lang.String arguments, java.lang.String description)
      Creates a shell link.
      static boolean createShellLink​(java.io.File file, java.io.File shortcutTo, java.io.File iconFile, java.lang.String arguments, java.lang.String description, java.io.File startIn)
      Creates a shell link.
      static boolean createShellLink​(java.io.File file, java.io.File shortcutTo, java.io.File iconFile, java.lang.String arguments, java.lang.String description, java.io.File startIn, ShowCommand showCommand)
      Creates a shell link.
      static void createStartMenuEntry​(java.lang.String programGroupName, java.lang.String entryName, java.io.File destination, boolean allUsers, java.io.File icon)
      Creates a start menu entry.
      static void createStartMenuEntry​(java.lang.String programGroupName, java.lang.String entryName, java.io.File destination, boolean allUsers, java.io.File icon, java.lang.String arguments)
      Creates a start menu entry.
      static void createStartMenuEntry​(java.lang.String programGroupName, java.lang.String entryName, java.io.File destination, boolean allUsers, java.io.File icon, java.lang.String arguments, boolean runAsAdministrator)
      Creates a start menu entry.
      static java.io.File getCommonFilesDirectory()
      Returns a folder for components that are shared across applications.
      static DriveType getDriveType​(java.io.File file)
      Tests on what kind of drive the given file is (or would be) located.
      static java.io.File getProgramDataDirectory()
      Returns the program data directory where applications can save data that is not specific to particular users.
      static java.io.File getProgramFilesDirectory()
      Returns the program files directory of the current Windows installation.
      static java.io.File getSpecialFolder​(SpecialFolder folderType, boolean allUsers)
      Returns Windows-specific directories like the start menu or the desktop.
      static java.io.File getSystemDirectory()
      Returns the system directory.
      static java.io.File getWindowsDirectory()
      Returns the Windows directory.
      static boolean moveWithDelayUntilReboot​(java.io.File source, java.io.File destination)
      Calls the win32 API function MoveFileEx with MOVEFILE_DELAY_UNTIL_REBOOT.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getSpecialFolder

        public static java.io.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 java.io.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 java.io.File getCommonFilesDirectory()
        Returns a folder for components that are shared across applications. A typical path is C:\Users\<i>user name</i>\AppData\Roaming.
        Returns:
        the common files directory.
      • getProgramDataDirectory

        public static java.io.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 java.io.File getWindowsDirectory()
        Returns the Windows directory. A typical path is C:\Windows.
        Returns:
        the Windows directory.
      • getSystemDirectory

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

        public static boolean createShellLink​(java.io.File file,
                                              java.io.File shortcutTo,
                                              java.io.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(File, File, File, String)
      • createShellLink

        public static boolean createShellLink​(java.io.File file,
                                              java.io.File shortcutTo,
                                              java.io.File iconFile,
                                              java.lang.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​(java.io.File file,
                                              java.io.File shortcutTo,
                                              java.io.File iconFile,
                                              java.lang.String arguments,
                                              java.lang.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​(java.io.File file,
                                              java.io.File shortcutTo,
                                              java.io.File iconFile,
                                              java.lang.String arguments,
                                              java.lang.String description,
                                              java.io.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​(java.io.File file,
                                              java.io.File shortcutTo,
                                              java.io.File iconFile,
                                              java.lang.String arguments,
                                              java.lang.String description,
                                              java.io.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​(java.lang.String programGroupName,
                                                java.lang.String entryName,
                                                java.io.File destination,
                                                boolean allUsers,
                                                java.io.File icon)
                                         throws java.io.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:
        java.io.IOException - if the start menu entry could not be created
      • createStartMenuEntry

        public static void createStartMenuEntry​(java.lang.String programGroupName,
                                                java.lang.String entryName,
                                                java.io.File destination,
                                                boolean allUsers,
                                                java.io.File icon,
                                                java.lang.String arguments)
                                         throws java.io.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:
        java.io.IOException - if the start menu entry could not be created
      • createStartMenuEntry

        public static void createStartMenuEntry​(java.lang.String programGroupName,
                                                java.lang.String entryName,
                                                java.io.File destination,
                                                boolean allUsers,
                                                java.io.File icon,
                                                java.lang.String arguments,
                                                boolean runAsAdministrator)
                                         throws java.io.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:
        java.io.IOException - if the start menu entry could not be created
      • moveWithDelayUntilReboot

        public static boolean moveWithDelayUntilReboot​(java.io.File source,
                                                       java.io.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​(java.io.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.