getDirectoryContents
import System.Directory
import System.Environment
import Control.Monad ( forM_, when )
import Data.List (isPrefixOf)
main :: IO ()
main = do
args <- getArgs
visit args
visit :: [ FilePath ] -> IO ()
visit files = forM_ files $ \ file -> do
putStrLn file
d <- doesDirectoryExist file
when d $ do
sub <- getDirectoryContents file
setCurrentDirectory file
visit $ filter ( not . isPrefixOf "." ) sub
setCurrentDirectory ".."
Bastel-Aufgabe: soweit ergänzen, daß es sich
wirklich wie ls -R1 verhält