System.Directory module provides renameFile
function, which is used to rename a file. Following is the signature of renameFile
function.
Prelude System.Directory> :t
renameFile
renameFile :: FilePath -> FilePath
-> IO ()
Example
renameFile
oldFile newFile
If the newFile already exists, it is
atomically replaced by the oldFile.
You may get following errors while
working with renameFile function.
Error
|
Description
|
HardwareFault
|
A physical I/O error has occurred.
|
InvalidArgument
|
Either operand is not a valid file
name.
|
isDoesNotExistError / NoSuchThing
|
The original file does not exist, or
there is no path to the target.
|
isPermissionError / PermissionDenied
|
The process has insufficient
privileges to perform the operation.
|
ResourceExhausted
|
Insufficient resources are available
to perform the operation.
|
UnsatisfiedConstraints
|
Implementation-dependent constraints
are not satisfied.
|
UnsupportedOperation
|
The implementation does not support
renaming in this situation.
|
InappropriateType
|
Either path refers to an existing
directory.
|
DirectoryUtil.hs
import System.IO import System.Directory main = do putStrLn "Enter file path to rename" oldFile <- getLine putStrLn "Enter new name for the file" newFile <- getLine renameFile oldFile newFile putStrLn "File renamed"
$ ls -l /Users/harikrishna_gurram/admin.log -rw-r--r-- 1 harikrishna_gurram ABC Users 2367 Apr 2 13:38 /Users/harikrishna_gurram/admin.log $ $ runghc DirectoryUtil.hs Enter file path to rename /Users/harikrishna_gurram/admin.log Enter new name for the file /Users/harikrishna_gurram/admin_tmp.log File renamed $ $ ls -l /Users/harikrishna_gurram/admin.log ls: /Users/harikrishna_gurram/admin.log: No such file or directory $ $ ls -l /Users/harikrishna_gurram/admin_tmp.log -rw-r--r-- 1 harikrishna_gurram ABC Users 2367 Apr 2 13:38 /Users/harikrishna_gurram/admin_tmp.log
No comments:
Post a Comment