是否存在用于处理文件和遍历目录的Haskell库,这些目录不是String
(不是相对路径)而是实际文件对象的文件?您认为ls -lR
可以这样做:
walk f = do
d <- doesDirectoryExist f
case d of
False -> putStrLn $ unwords [ "file", f ]
True -> listDirectory f >>= mapM_ walk
使用http://hackage.haskell.org/package/directory-1.2.5.1/docs/System-Directory.html但实际上它不能 - 我必须手动拼接文件&#39;名字在一起。我知道这是如何运作的,但它绝对是丑陋的。
作为参考,Java有点更正确,因为它们有Path
? http://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html
DirectoryStream<Path> s = Files.newDirectoryStream(p);
for (Path f : s) { System.out.println (f); }