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
Другие вопросы по тегам