Clean3.0 получить содержимое каталога
Я использую Cleanide для Clean3.0
язык программирования. Я пытаюсь реализовать функцию, которая получает имя каталога в моей системе и возвращает список всех файлов в этом каталоге.
Я не знаю, должно ли определение такой функции быть похожим File -> [string]
или может быть что-то еще, даже этот каталог является файлом, может быть, это не разработчики Clean
означало...
Большое спасибо!
1 ответ
Эта функция недоступна в среде StdEnv, но есть две библиотеки, которые могут помочь с этим:
Библиотека Directory содержит модуль Directory, который имеет функцию
getDirectoryContents :: !Path !*env -> (!(!DirError, [DirEntry]), !*env) | FileSystem env
,Библиотека Platform содержит модуль System.Directory, который имеет функцию
readDirectory :: !FilePath !*w -> (!MaybeOSError [FilePath], !*w)
,
В обоих случаях первый аргумент - это путь к каталогу, а второй - *World
, который является типичным способом очистки для выполнения нечистых операций (см. главу 9 языкового отчета).
Примеры кода
С каталогом:
import Directory
Start w
# (dir,w) = getDirectoryContents (RelativePath []) w
= dir
С платформой:
import System.Directory
Start w
# (dir,w) = readDirectory "." w
= dir