Copyright | 2012 shelarcy |
---|---|
License | BSD-style |
Maintainer | shelarcy@gmail.com |
Stability | Provisional |
Portability | Non-portable (Win32 API) |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Handling symbolic link using Win32 API. [Vista of later and desktop app only]
Note: When using the createSymbolicLink* functions without the SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE flag, you should worry about UAC (User Account Control) when use this module's function in your application:
- require to use 'Run As Administrator' to run your application.
- or modify your application's manifect file to add
<requestedExecutionLevel level=
requireAdministrator
uiAccess=false
/>.
Starting from Windows 10 version 1703 (Creators Update), after enabling
Developer Mode, users can create symbolic links without requiring the
Administrator privilege in the current process. Supply a True
flag in
addition to the target and link name to enable this behavior.
Synopsis
- type SymbolicLinkFlags = DWORD
- sYMBOLIC_LINK_FLAG_FILE :: SymbolicLinkFlags
- sYMBOLIC_LINK_FLAG_DIRECTORY :: SymbolicLinkFlags
- sYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE :: SymbolicLinkFlags
- createSymbolicLink :: WindowsPath -> WindowsPath -> SymbolicLinkFlags -> IO ()
- createSymbolicLink' :: WindowsPath -> WindowsPath -> SymbolicLinkFlags -> IO ()
- createSymbolicLinkFile :: WindowsPath -> WindowsPath -> Bool -> IO ()
- createSymbolicLinkDirectory :: WindowsPath -> WindowsPath -> Bool -> IO ()
Documentation
type SymbolicLinkFlags = DWORD Source #
:: WindowsPath | Target file path |
-> WindowsPath | Symbolic link name |
-> SymbolicLinkFlags | |
-> IO () |
createSymbolicLink* functions don't check that file is exist or not.
NOTE: createSymbolicLink* functions are flipped arguments to provide compatibility for Unix,
except createSymbolicLink'
.
If you want to create symbolic link by Windows way, use createSymbolicLink'
instead.
:: WindowsPath | Symbolic link name |
-> WindowsPath | Target file path |
-> SymbolicLinkFlags | |
-> IO () |
createSymbolicLinkFile Source #
:: WindowsPath | Target file path |
-> WindowsPath | Symbolic link name |
-> Bool | Create the symbolic link with the unprivileged mode |
-> IO () |
createSymbolicLinkDirectory Source #
:: WindowsPath | Target file path |
-> WindowsPath | Symbolic link name |
-> Bool | Create the symbolic link with the unprivileged mode |
-> IO () |