System.Posix.Directory

unix-2.7.2.2: POSIX functionality

Copyright | (c) The University of Glasgow 2002
License | BSD-style (see the file libraries/base/LICENSE)
Maintainer | libraries@haskell.org
Stability | provisional
Portability | non-portable (requires POSIX)
Safe Haskell | Safe
Language | Haskell2010

System.Posix.Directory

Contents

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

Description

String-based 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 () #