The directory-tree package

[Tags: bsd3, library]

A simple directory-like tree datatype, with useful IO functions and Foldable and Traversable instance

Provides a simple data structure mirroring a directory tree on the filesystem, as well as useful functions for reading and writing file and directory structures in the IO monad.

Importing the library and optional (useful) Foldable and Traverable libraries:

 import System.Directory.Tree
 import qualified Data.Foldable as F
 import qualified Data.Traversable as T

Write a hand-made directory tree of textfiles (strings) to the disk. Simulates creating a new user Tux's home directory on a unix machine:

 writeDirectory$ "/home" :/ Dir "Tux" [File "README" "Welcome!"]

read a directory by opening all the files at a filepath with readFile, returning an 'AnchoredDirTree String' (d2). Then check for any IO failures:

 do (base :/ d2) <- readDirectory "../parent_dir/dir2/"
    let failed = anyFailed d2
    if failed then ...

Use Foldable instance function to concat a directory dir of text files into a single file under the same directory:

 do (b :/ dt) <- readDirectory dir
    let f = F.concat dt
    return$ b :/ File "ALL_TEXT" f

Open all the files in the current directory as lazy bytestrings, ignoring the base path in Anchored wrapper:

 import qualified Data.ByteString.Lazy as B
 do (_ :/ dTree) <- readDirectoryWith B.readFile "./"

Properties

Versions0.1, 0.1.1, 0.1.2, 0.2.0, 0.2.1, 0.9.0, 0.9.1, 0.10.0, 0.10.1, 0.11.0, 0.12.0
Dependenciesbase (<5), directory (<2), filepath (<2)
LicenseBSD3
Copyright(c) 2010, Brandon Simmons <brandon.m.simmons@gmail.com>
AuthorBrandon Simmons
MaintainerBrandon Simmons <brandon.m.simmons@gmail.com>
CategoryData, System
Home pagehttp://coder.bsimmons.name/blog/2009/05/directory-tree-module-released/
Upload dateThu Aug 5 03:57:48 UTC 2010
Uploaded byBrandonSimmons
DistributionsDebian:0.11.0, FreeBSD:0.11.0, NixOS:0.12.0
Downloads7922 total (741 in last 30 days)

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees