Tôi muốn liệt kê tất cả thư mục con của một thư mục trong Haskell. Bắt tất cả nội dung thư mục thật dễ dàng, có chức năng getDirectoryContents
. Nhưng làm cách nào để lọc chúng? Vì getDirectoryContents
trả lại một số IO [FilePath]
và filter
mong đợi [a]
, tôi không thể đặt hai trực tiếp đó lại với nhau. (. Rõ ràng, tôi là một con cá tươi với monads và làm-ký hiệu)Làm cách nào để tìm tất cả thư mục con của một thư mục?
getAllFolders :: FilePath -> IO [FilePath]
getAllFolder path = do
allItems <- getDirectoryContents path
-- now what? the predicate is doesDirectoryExist
Cảm ơn bạn! Có một vấn đề khác với các tệp tương đối/tuyệt đối, nhưng tôi có thể hiểu được điều đó. – zoul
Vấn đề đó với các đường dẫn tương đối liên tục vấp ngã tôi - đến mức tôi đã phát minh ra một thư viện chỉ để giải quyết nó! Ngoài ra, 'getDirectoryContents' luôn trả về' .' và '..', điều này gây phiền toái. – MathematicalOrchid
'> =>' mmmm. Chúng tôi thích '> =>'. – AndrewC