module Directory (
Permissions( Permissions, readable, writable,
executable, searchable ),
createDirectory, removeDirectory, removeFile,
renameDirectory, renameFile, getDirectoryContents,
getCurrentDirectory, setCurrentDirectory,
doesFileExist, doesDirectoryExist,
getPermissions, setPermissions,
getModificationTime ) where
import Time ( ClockTime )
data Permissions = Permissions {
readable, writable,
executable, searchable :: Bool
}
instance Eq Permissions where ...
instance Ord Permissions where ...
instance Read Permissions where ...
instance Show Permissions where ...
createDirectory :: FilePath -> IO ()
removeDirectory :: FilePath -> IO ()
removeFile :: FilePath -> IO ()
renameDirectory :: FilePath -> FilePath -> IO ()
renameFile :: FilePath -> FilePath -> IO ()
getDirectoryContents :: FilePath -> IO [FilePath]
getCurrentDirectory :: IO FilePath
setCurrentDirectory :: FilePath -> IO ()
doesFileExist :: FilePath -> IO Bool
doesDirectoryExist :: FilePath -> IO Bool
getPermissions :: FilePath -> IO Permissions
setPermissions :: FilePath -> Permissions -> IO ()
getModificationTime :: FilePath -> IO ClockTime
Эти функции работают с каталогами (директориями) в файловой системе.
Любая операция Directory может вызвать isIllegalOperation, как описано в разделе 21.1; все другие допустимые ошибки описаны ниже. Обратите внимание, в частности, на то, что если реализация не поддерживает операцию, она должно вызвать isIllegalOperation. Каталог содержит ряд записей, каждая из которых является именованной ссылкой на объект файловой системы (файл, каталог и т.д.). Некоторые записи могут быть скрыты, недоступны или иметь некоторую административную функцию (например, "." или ".." в POSIX), но считается, что все такие записи формируют часть содержимого каталога. Записи в подкаталогах, однако, не считаются частями содержимого каталога. Тем не менее могут быть объекты файловой системы, отличные от файлов и каталогов, эта библиотека не различает физические файлы и другие объекты, не являющиеся каталогами. Все такие объекты поэтому должны обрабатываться как если бы они были файлами.
На каждый объект файловой системы ссылается путь. Обычно есть по крайней мере один абсолютный путь к каждому объекту файловой системы. В некоторых операционных системах возможно также иметь пути, которые относятся к текущему каталогу.
Функция createDirectory dir создает новый каталог dir, который первоначально пуст, или настолько пуст, насколько позволяет операционная система.
Сообщения об ошибках. Функция createDirectory может завершиться с ошибкой isPermissionError, если пользователь не имеет прав на isAlreadyExistsError, если каталог уже существует; isDoesNotExistError, если
Функция removeDirectory dir удаляет существующий каталог dir. Реализация может установить дополнительные ограничения, которые должны быть выполнены до того, как каталог будет удален (например, каталог должен быть пуст или не может использоваться другими процессами). Реализация не должна частично удалять каталог, если весь каталог не удален.
Функция removeFile file удаляет запись в каталоге для существующего файла file, где file сам не является каталогом. Реализация может установить дополнительные ограничения, которые должны быть выполнены до того, как файл будет удален (например, файл не может использоваться другими процессами).
Сообщения об ошибках. Функции removeDirectory и removeFile могут завершиться с ошибкой isPermissionError, если пользователь не имеет прав на удаление файла/каталога; isDoesNotExistError, если файл/каталог не существует.
Функция renameDirectory old new изменяет имя существующего каталога old на new. Если каталог new уже существует, он атомарно замещается каталогом old. Если каталог new не является ни каталогом old, ни псевдонимом каталогом old, он удаляется как с помощью removeDirectory.
Функция renameFile old new изменяет имя существующего объекта файловой системы old на new. Если объект new уже существует, он атомарно замещается объектом old. Также путь не может ссылаться на существующий каталог.
Сообщения об ошибках. Функции renameDirectory и renameFile могут завершиться с ошибкой isPermissionError, если пользователь не имеет прав на переименование файла/каталога или если один из двух аргументов renameFile является каталогом; isDoesNotExistError, если файл/каталог не существует.
Функция getDirectoryContents dir возвращает список всех записей в dir. Каждая запись в возвращаемом списке является именем относительно каталога dir, а не абсолютным путем.
Если операционная система имеет понятие о текущих каталогах, getCurrentDirectory возвращает абсолютный путь к текущему каталогу вызывающего процесса.
Сообщения об ошибках. Функции getDirectoryContents и getCurrentDirectory могут завершиться с ошибкой isPermissionError, если пользователь не имеет прав на доступ к директории; isDoesNotExistError, если каталог не существует.
Если операционная система имеет понятие о текущих каталогах, setCurrentDirectory dir меняет текущий каталог вызывающего процесса на dir.
Сообщения об ошибках. setCurrentDirectory может завершиться с ошибкой isPermissionError, если пользователь не имеет прав на смену каталога на указанный; isDoesNotExistError, если каталог не существует.
Тип используется для регистрации того, являются ли определенные операции допустимыми над файлом/каталогом. getPermissions и setPermissions соответственно получают и устанавливают эти права. Права применяются и к файлам, и каталогам. Для каталогов значение поля executable будет равно False, а для файлов значение поля будет равно False. Обратите внимание, что каталоги могут быть доступны для поиска, даже будучи не доступными для чтения, если имеется право на то, чтобы использовать их как часть пути, но не исследовать содержание каталога.
Обратите внимание, чтобы изменить некоторые, но не все права, следует использовать следующую конструкцию:
makeReadable f = do
p <- getPermissions f
setPermissions f (p {readable = True})
Операция doesDirectoryExist возвращает True, если указанный в аргументе файл существует и является каталогом, и False иначе. Операция doesFileExist возвращает True, если указанный в аргументе файл существует и не является каталогом, и False иначе.
Операция getModificationTime возвращает время системных часов, в которое файл/каталог был изменен в последний раз.
Сообщения об ошибках. get(set) и getModificationTime могут завершиться с ошибкой isPermissionError, если пользователь не имеет прав на доступ к соответствующей информации; isDoesNotExistError, если файл/каталог не существует. Функция setPermissions может также завершиться с ошибкой isPermissionError, если пользователь не имеет прав на изменение прав для указанного файла или каталога; isDoesNotExistError, если файл/каталог не существует.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.