Haskell中的嵌套目录列表

时间:2016-12-31 20:59:29

标签: haskell

我只是想知道我是否可以使用System.Directory包中的任何特定方法或某些东西来获取给定指定路径的所有嵌套目录的列表。我没有找到任何合适的功能,所以我想出了类似的东西:

getDirList :: FilePath -> IO [FilePath]
getDirList dir = do
  contents <- getDirectoryContents dir
  all <- mapM (return . (dir </>)) $ filter (\f -> f /= "." && f /= "..") contents
  dirs <- filterM doesDirectoryExist all
  dirs' <- mapM getDirList dirs
  return (dir : concat dirs')
可能我错过了一些非常简单的事情吗?谁有人建议?谢谢。

1 个答案:

答案 0 :(得分:1)

如果可以使用filemanip包:

import System.FilePath.Find

getDirList dir = find always (fileType ==? Directory) dir