Clean3.0 получить содержимое каталога - PullRequest
1 голос
/ 07 марта 2019

Я использую Cleanide для Clean3.0 языка программирования.Я пытаюсь реализовать функцию, которая получает имя каталога в моей системе и возвращает список всех файлов в этом каталоге.

Я не знаю, соответствует ли определение такой функциидолжен быть как File -> [string] или, может быть, что-то еще, даже этот каталог является файлом, может быть, это не разработчики Clean имелось в виду ...

Спасибо большое!

1 Ответ

0 голосов
/ 07 марта 2019

Эта функция недоступна в среде 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
...