System.Posix.Directory

unix-2.4.2.0: POSIX functionality

Portability | non-portable (requires POSIX)
Stability | provisional
Maintainer | libraries@haskell.org

System.Posix.Directory

Contents

- Creating and removing directories
- Reading directories
- The working dirctory

Description

POSIX directory support

Synopsis

- createDirectory :: FilePath -> FileMode -> IO ()
- removeDirectory :: FilePath -> IO ()
- data DirStream
- openDirStream :: FilePath -> IO DirStream
- readDirStream :: DirStream -> IO FilePath
- rewindDirStream :: DirStream -> IO ()
- closeDirStream :: DirStream -> IO ()
- data DirStreamOffset
- tellDirStream :: DirStream -> IO DirStreamOffset
- seekDirStream :: DirStream -> DirStreamOffset -> IO ()
- getWorkingDirectory :: IO FilePath
- changeWorkingDirectory :: FilePath -> IO ()
- changeWorkingDirectoryFd :: Fd -> IO ()

# Creating and removing directories

createDirectory :: FilePath -> FileMode -> IO ()

`createDirectory dir mode` calls `mkdir` to create a new directory, `dir`, with permissions based on `mode`.

removeDirectory :: FilePath -> IO ()

# Reading directories

data DirStream

openDirStream :: FilePath -> IO DirStream

`openDirStream dir` calls `opendir` to obtain a directory stream for `dir`.

readDirStream :: DirStream -> IO FilePath

`readDirStream dp` calls `readdir` to obtain the next directory entry (`struct dirent`) for the open directory stream `dp`, and returns the `d_name` member of that structure.

rewindDirStream :: DirStream -> IO ()

`rewindDirStream dp` calls `rewinddir` to reposition the directory stream `dp` at the beginning of the directory.

closeDirStream :: DirStream -> IO ()

`closeDirStream dp` calls `closedir` to close the directory stream `dp`.

data DirStreamOffset

tellDirStream :: DirStream -> IO DirStreamOffset

seekDirStream :: DirStream -> DirStreamOffset -> IO ()

# The working dirctory

getWorkingDirectory :: IO FilePath

`getWorkingDirectory` calls `getcwd` to obtain the name of the current working directory.

changeWorkingDirectory :: FilePath -> IO ()

`changeWorkingDirectory dir` calls `chdir` to change the current working directory to `dir`.

changeWorkingDirectoryFd :: Fd -> IO ()