Safe Haskell | Safe |
---|---|
Language | Haskell98 |
This module provides type-safe access to directory manipulations.
It is designed to be imported instead of System.Directory. (It is intended to provide versions of functions from that module which have equivalent functionality but are more typesafe). System.Path is a companion module providing a type-safe alternative to System.FilePath.
You will typically want to import as follows:
import Prelude hiding (FilePath) import System.Path import System.Path.Directory import System.Path.IO
Ben Moseley - (c) 2009
- createDirectory :: AbsOrRelClass ar => DirPath ar -> IO ()
- createDirectoryIfMissing :: AbsOrRelClass ar => Bool -> DirPath ar -> IO ()
- removeDirectory :: AbsOrRelClass ar => DirPath ar -> IO ()
- removeDirectoryRecursive :: AbsOrRelClass ar => DirPath ar -> IO ()
- renameDirectory :: (AbsOrRelClass ar1, AbsOrRelClass ar2) => DirPath ar1 -> DirPath ar2 -> IO ()
- getDirectoryContents :: AbsOrRelClass ar => DirPath ar -> IO [RelFileOrDir]
- absDirectoryContents :: AbsOrRelClass ar => DirPath ar -> IO ([AbsDir], [AbsFile])
- relDirectoryContents :: AbsOrRelClass ar => DirPath ar -> IO ([RelDir], [RelFile])
- filesInDir :: AbsOrRelClass ar => DirPath ar -> IO [RelFile]
- dirsInDir :: AbsOrRelClass ar => DirPath ar -> IO [RelDir]
- getCurrentDirectory :: IO AbsDir
- setCurrentDirectory :: AbsOrRelClass ar => DirPath ar -> IO ()
- getHomeDirectory :: IO AbsDir
- getAppUserDataDirectory :: String -> IO AbsDir
- getUserDocumentsDirectory :: IO AbsDir
- getTemporaryDirectory :: IO AbsDir
- removeFile :: AbsOrRelClass ar => FilePath ar -> IO ()
- renameFile :: (AbsOrRelClass ar1, AbsOrRelClass ar2) => FilePath ar1 -> FilePath ar2 -> IO ()
- copyFile :: (AbsOrRelClass ar1, AbsOrRelClass ar2) => FilePath ar1 -> FilePath ar2 -> IO ()
- canonicalizePath :: (AbsOrRelClass ar, FileOrDirClass fd) => Path ar fd -> IO (AbsPath fd)
- makeRelativeToCurrentDirectory :: (AbsOrRelClass ar, FileOrDirClass fd) => Path ar fd -> IO (RelPath fd)
- findExecutable :: String -> IO (Maybe AbsFile)
- doesFileExist :: AbsOrRelClass ar => FilePath ar -> IO Bool
- doesDirectoryExist :: AbsOrRelClass ar => DirPath ar -> IO Bool
- data Permissions :: *
- getPermissions :: (AbsOrRelClass ar, FileOrDirClass fd) => Path ar fd -> IO Permissions
- setPermissions :: (AbsOrRelClass ar, FileOrDirClass fd) => Path ar fd -> Permissions -> IO ()
- getModificationTime :: (AbsOrRelClass ar, FileOrDirClass fd) => Path ar fd -> IO UTCTime
Actions on directories
createDirectory :: AbsOrRelClass ar => DirPath ar -> IO () Source
createDirectoryIfMissing :: AbsOrRelClass ar => Bool -> DirPath ar -> IO () Source
removeDirectory :: AbsOrRelClass ar => DirPath ar -> IO () Source
removeDirectoryRecursive :: AbsOrRelClass ar => DirPath ar -> IO () Source
renameDirectory :: (AbsOrRelClass ar1, AbsOrRelClass ar2) => DirPath ar1 -> DirPath ar2 -> IO () Source
getDirectoryContents :: AbsOrRelClass ar => DirPath ar -> IO [RelFileOrDir] Source
Retrieve the contents of a directory without any directory prefixes.
In contrast to getDirectoryContents
,
exclude special directories "." and "..".
absDirectoryContents :: AbsOrRelClass ar => DirPath ar -> IO ([AbsDir], [AbsFile]) Source
Retrieve the contents of a directory path (which may be relative) as absolute paths
relDirectoryContents :: AbsOrRelClass ar => DirPath ar -> IO ([RelDir], [RelFile]) Source
Returns paths relative to the supplied (abs or relative) directory path.
eg (for current working directory of /somewhere/cwd/
):
show (relDirectoryContents "d/e/f/") == (["subDir1A","subDir1B"], ["file1A","file1B"])
filesInDir :: AbsOrRelClass ar => DirPath ar -> IO [RelFile] Source
A convenient alternative to relDirectoryContents
if you only want files.
dirsInDir :: AbsOrRelClass ar => DirPath ar -> IO [RelDir] Source
A convenient alternative to relDirectoryContents
if you only want directories.
setCurrentDirectory :: AbsOrRelClass ar => DirPath ar -> IO () Source
Pre-defined directories
Actions on files
removeFile :: AbsOrRelClass ar => FilePath ar -> IO () Source
renameFile :: (AbsOrRelClass ar1, AbsOrRelClass ar2) => FilePath ar1 -> FilePath ar2 -> IO () Source
copyFile :: (AbsOrRelClass ar1, AbsOrRelClass ar2) => FilePath ar1 -> FilePath ar2 -> IO () Source
canonicalizePath :: (AbsOrRelClass ar, FileOrDirClass fd) => Path ar fd -> IO (AbsPath fd) Source
makeRelativeToCurrentDirectory :: (AbsOrRelClass ar, FileOrDirClass fd) => Path ar fd -> IO (RelPath fd) Source
Existence tests
doesFileExist :: AbsOrRelClass ar => FilePath ar -> IO Bool Source
doesDirectoryExist :: AbsOrRelClass ar => DirPath ar -> IO Bool Source
Permissions
data Permissions :: *
getPermissions :: (AbsOrRelClass ar, FileOrDirClass fd) => Path ar fd -> IO Permissions Source
setPermissions :: (AbsOrRelClass ar, FileOrDirClass fd) => Path ar fd -> Permissions -> IO () Source
Timestamps
getModificationTime :: (AbsOrRelClass ar, FileOrDirClass fd) => Path ar fd -> IO UTCTime Source