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
- c_CreateSymbolicLink :: LPTSTR -> LPTSTR -> SymbolicLinkFlags -> IO BOOL
- sYMBOLIC_LINK_FLAG_FILE :: SymbolicLinkFlags
- sYMBOLIC_LINK_FLAG_DIRECTORY :: SymbolicLinkFlags
- sYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE :: SymbolicLinkFlags
- createSymbolicLink :: FilePath -> FilePath -> SymbolicLinkFlags -> IO ()
- createSymbolicLinkFile :: FilePath -> FilePath -> Bool -> IO ()
- createSymbolicLinkDirectory :: FilePath -> FilePath -> Bool -> IO ()
- createSymbolicLink' :: FilePath -> FilePath -> SymbolicLinkFlags -> IO ()
Documentation
type SymbolicLinkFlags = DWORD Source #
c_CreateSymbolicLink :: LPTSTR -> LPTSTR -> SymbolicLinkFlags -> IO BOOL Source #
:: FilePath | Target file path |
-> FilePath | 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.
:: FilePath | Symbolic link name |
-> FilePath | Target file path |
-> SymbolicLinkFlags | |
-> IO () |