Package com.install4j.api.windows
Class WinFileSystem
java.lang.Object
com.install4j.api.windows.WinFileSystem
Collection of static methods to access Microsoft Windows-specific
folder locations and to execute native file system operations.
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
createShellLink
(File file, File shortcutTo, File iconFile) Creates a shell link.static boolean
createShellLink
(File file, File shortcutTo, File iconFile, String arguments) Creates a shell link.static boolean
Creates a shell link.static boolean
createShellLink
(File file, File shortcutTo, File iconFile, String arguments, String description, File startIn) Creates a shell link.static boolean
createShellLink
(File file, File shortcutTo, File iconFile, String arguments, String description, File startIn, ShowCommand showCommand) Creates a shell link.static void
createStartMenuEntry
(String programGroupName, String entryName, File destination, boolean allUsers, File icon) Creates a start menu entry.static void
createStartMenuEntry
(String programGroupName, String entryName, File destination, boolean allUsers, File icon, String arguments) Creates a start menu entry.static void
createStartMenuEntry
(String programGroupName, String entryName, File destination, boolean allUsers, File icon, String arguments, boolean runAsAdministrator) Creates a start menu entry.static File
Returns a folder for components that are shared across applications.static DriveType
getDriveType
(File file) Tests on what kind of drive the given file is (or would be) located.static File
Returns the program data directory where applications can save data that is not specific to particular users.static File
Returns the program files directory of the current Windows installation.static File
getSpecialFolder
(SpecialFolder folderType, boolean allUsers) Returns Windows-specific directories like the start menu or the desktop.static File
Returns the system directory.static File
Returns the Windows directory.static boolean
moveWithDelayUntilReboot
(File source, File destination) Calls the win32 API function MoveFileEx with MOVEFILE_DELAY_UNTIL_REBOOT.
-
Method Details
-
getSpecialFolder
Returns Windows-specific directories like the start menu or the desktop.- Parameters:
folderType
- specifies the requested folder type.allUsers
- if this parameter istrue
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
Returns the program files directory of the current Windows installation. A typical path isC:\Program Files
.- Returns:
- the program files directory.
-
getCommonFilesDirectory
Returns a folder for components that are shared across applications. A typical path isC:\Program Files\Common Files
.- Returns:
- the common files directory.
-
getProgramDataDirectory
Returns the program data directory where applications can save data that is not specific to particular users. A typical path isC:\ProgramData
.- Returns:
- the common files directory.
-
getWindowsDirectory
Returns the Windows directory. A typical path isC:\Windows
.- Returns:
- the Windows directory.
-
getSystemDirectory
Returns the system directory. A typical path isC:\Windows\system32
- Returns:
- the system directory.
-
createShellLink
Creates a shell link. Note that Windows might change the link suffix fromlnk
topif
, if you are linking to a DOS executable or a batch file. This as the same as callingcreateShellLink(file, shortcutTo, iconFile, null, null)
- Parameters:
file
- the shell link that should be created including thelnk
suffix.shortcutTo
- the file it should link to.iconFile
- an optional icon file. Ifnull
is passed, the default icon of theshortcutTo
target will be used.- Returns:
- whether the link could be created or not.
- See Also:
-
createShellLink
Creates a shell link. Note that Windows might change the link suffix fromlnk
topif
, if you are linking to a DOS executable or a batch file. This as the same as callingcreateShellLink(file, shortcutTo, iconFile, arguments, null)
- Parameters:
file
- the shell link that should be created including thelnk
suffix.shortcutTo
- the file it should link to.iconFile
- an optional icon file. Ifnull
is passed, the default icon of theshortcutTo
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 fromlnk
topif
, if you are linking to a DOS executable or a batch file.- Parameters:
file
- the shell link that should be created including thelnk
suffix.shortcutTo
- the file it should link to.iconFile
- an optional icon file. Ifnull
is passed, the default icon of theshortcutTo
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 fromlnk
topif
, if you are linking to a DOS executable or a batch file.- Parameters:
file
- the shell link that should be created including thelnk
suffix.shortcutTo
- the file it should link to.iconFile
- an optional icon file. Ifnull
is passed, the default icon of theshortcutTo
target will be used.arguments
- the arguments passed to the target.description
- the description used in the tooltipstartIn
- 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 fromlnk
topif
, if you are linking to a DOS executable or a batch file.- Parameters:
file
- the shell link that should be created including thelnk
suffix.shortcutTo
- the file it should link to.iconFile
- an optional icon file. Ifnull
is passed, the default icon of theshortcutTo
target will be used.arguments
- the arguments passed to the target.description
- the description used in the tooltipstartIn
- the working directory for the executableshowCommand
- 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 createdentryName
- the name of the menu entry. You can create subfolders with backslashes.destination
- the file that should be linked toallUsers
- whether the entry should be created for all users or noticon
- an optional icon file. Ifnull
is passed, the default icon of thedestination
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 createdentryName
- the name of the menu entry. You can create subfolders with backslashes.destination
- the file that should be linked toallUsers
- whether the entry should be created for all users or noticon
- an optional icon file. Ifnull
is passed, the default icon of thedestination
target will be used.arguments
- optional arguments given to the destination. Can benull
- 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 createdentryName
- the name of the menu entry. You can create subfolders with backslashes.destination
- the file that should be linked toallUsers
- whether the entry should be created for all users or noticon
- an optional icon file. Ifnull
is passed, the default icon of thedestination
target will be used.arguments
- optional arguments given to the destination. Can benull
runAsAdministrator
- whether the entry should be run as administrator- Throws:
IOException
- if the start menu entry could not be created
-
moveWithDelayUntilReboot
Calls the win32 API function MoveFileEx with MOVEFILE_DELAY_UNTIL_REBOOT. You must be an 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
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
.
-