Haskell System.Directory module Provides
number of functions to work with file/directory permissions. Following table
summarizes the functions.
Previous
Next
Home
Function
|
Signature
|
Description
|
emptyPermissions
|
emptyPermissions :: Permissions
|
Return Permissions instance by
clearing all.
Prelude System.Directory>
emptyPermissions
Permissions {readable = False,
writable = False, executable = False, searchable = False}
|
readable
|
readable :: Permissions -> Bool
|
Return True, if the Permissions
instance has the property readable = True, else False.
|
writable
|
writable :: Permissions -> Bool
|
Return True, if the Permissions
instance has the property writable = True, else False.
|
executable
|
executable :: Permissions -> Bool
|
Return True, if the Permissions
instance has the property executable = True, else False.
|
searchable
|
searchable :: Permissions -> Bool
|
Return True, if the Permissions
instance has the property searchable = True, else False
|
setOwnerReadable
|
setOwnerReadable :: Bool ->
Permissions -> Permissions
|
If the Bool argument is True, it sets
the readable permission to the owner, else unset.
|
setOwnerWritable
|
setOwnerWritable :: Bool ->
Permissions -> Permissions
|
If the Bool argument is True, it sets
the writable permission to the owner, else unset.
|
setOwnerExecutable
|
setOwnerExecutable :: Bool ->
Permissions -> Permissions
|
If the Bool argument is True, it sets
the executable permission to the owner, else unset.
|
setOwnerSearchable
|
setOwnerSearchable :: Bool ->
Permissions -> Permissions
|
If the Bool argument is True, it sets
the searchable permission to the owner, else unset.
|
getPermissions
|
getPermissions :: FilePath -> IO
Permissions
|
Get the permissions of a file (or)
directory.
|
setPermissions
|
setPermissions :: FilePath ->
Permissions -> IO ()
|
Set permissins to given file.
|
copyPermissions
|
copyPermissions :: FilePath ->
FilePath -> IO ()
|
Copy permissions of one file to other.
|
PermissionUtil.hs
import System.IO import System.Directory main = do putStrLn "Enter directory (or) file" file <- getLine permissions <- getPermissions file let isReadable = readable permissions let isWritable = writable permissions let isExecutable = executable permissions let isSearchable = searchable permissions putStrLn $ "permissions : " ++ (show permissions) putStrLn $ "isReadable : " ++ (show isReadable) putStrLn $ "isWritable : " ++ (show isWritable) putStrLn $ "isExecutable : " ++ (show isExecutable) putStrLn $ "isSearchable : " ++ (show isSearchable)
$ runghc PermissionUtil.hs Enter directory (or) file /Users/harikrishna_gurram permissions : Permissions {readable = True, writable = True, executable = False, searchable = True} isReadable : True isWritable : True isExecutable : False isSearchable : True $ $ runghc PermissionUtil.hs Enter directory (or) file /usr/bin/java permissions : Permissions {readable = True, writable = False, executable = True, searchable = False} isReadable : True isWritable : False isExecutable : True isSearchable : False
Note
getPermissions, setPermissions functions
may fail with following errors.
isPermissionError if the user is not
permitted to access the permissions; or
isDoesNotExistError if the file or directory
does not exist.
No comments:
Post a Comment