Spec-Zone.ru › OCaml 5.0

Модуль ИмяФайла

module Filename: sig .. end

Операции с именами файлов.

val current_dir_name : string

Традиционное имя текущей директории (например, . в Unix).

val parent_dir_name : string

Традиционное имя родительской директории (например, .. в Unix).

val dir_sep : string

Разделитель директорий (например, / в Unix).

  • Since 3.11.2
val concat : string -> string -> string

concat dir file возвращает имя файла, которое обозначает файл file в директории dir.

val is_relative : string -> bool

Возвращает true , если имя файла относительно текущей директории, false , если оно абсолютное (т.е. в Unix, начинается с /).

val is_implicit : string -> bool

Возвращает true , если имя файла относительно и не начинается с явного указания текущей директории (./ или ../ в Unix), false , если оно начинается с явного указания корневой директории или текущей директории.

val check_suffix : string -> string -> bool

check_suffix name suff возвращает true , если имя файла name заканчивается на суффикс suff.

В портах Windows (включая Cygwin) сравнение выполняется без учёта регистра, опираясь на String.lowercase_ascii. Обратите внимание, что это не точно соответствует интерпретации сравнения имён файлов без учёта регистра в Windows.

val chop_suffix : string -> string -> string

chop_suffix name suff удаляет суффикс suff из имени файла name.

  • Raises Invalid_argument если name не заканчивается на суффикс suff.
val chop_suffix_opt : suffix:string -> string -> string option

chop_suffix_opt ~suffix filename удаляет суффикс из filename если возможно, или возвращает None , если имя файла не заканчивается на суффикс.

В портах Windows (включая Cygwin) сравнение выполняется без учёта регистра, опираясь на String.lowercase_ascii. Обратите внимание, что это не точно соответствует интерпретации сравнения имён файлов без учёта регистра в Windows.

  • Since 4.08
val extension : string -> string

extension name - самый короткий суффикс ext от name0 , где:

  • name0 - самый длинный суффикс name , который не содержит разделитель директорий;
  • ext начинается с точки;
  • ext предшествует по крайней мере одному символу, не являющемуся точкой, в name0.

Если такой суффикс не существует, extension name - пустая строка.

  • Since 4.04
val remove_extension : string -> string

Возвращает данное имя файла без расширения, как определено в Filename.extension. Если расширение пустое, функция возвращает данное имя файла.

Следующее инвариантное свойство выполняется для любого имени файла s:

remove_extension s ^ extension s = s

  • Since 4.04
val chop_extension : string -> string

То же, что и Filename.remove_extension, но выводит Invalid_argument , если у данного имени пустое расширение.

val basename : string -> string

Разделить имя файла на имя директории/имя базового файла. Если name - это допустимое имя файла, то concat (dirname name) (basename name) возвращает имя файла, которое эквивалентно name. Более того, после установки текущей директории на dirname name (с помощью Sys.chdir), ссылки на basename name (которое является относительным именем файла) обозначают тот же самый файл, что и name до вызова Sys.chdir.

Эта функция соответствует спецификации POSIX.1-2008 для утилиты basename.

val dirname : string -> string

См. Filename.basename. Эта функция соответствует спецификации POSIX.1-2008 для утилиты dirname.

val null : string

null - это "/dev/null" в POSIX и "NUL" в Windows. Он представляет файл в ОС, который отбрасывает все записи и возвращает конец файла при чтении.

  • Since 4.10.0
val temp_file : ?temp_dir:string -> string -> string -> string

temp_file prefix suffix возвращает имя свежесозданного временного файла в временной директории. Базовое имя временного файла формируется путём конкатенации prefix, затем подходящего целого числа, затем suffix. Необязательный аргумент temp_dir указывает временную директорию для использования, по умолчанию - текущий результат Filename.get_temp_dir_name. Временный файл создаётся пустым, с правами 0o600 (читаемый и записываемый только владельцем файла). Гарантируется, что файл отличается от любого другого файла, существовавшего при вызове temp_file.

  • Before 3.11.2 no ?temp_dir optional argument
  • Raises Sys_error если файл не может быть создан.
val open_temp_file : ?mode:open_flag list ->       ?perms:int ->       ?temp_dir:string -> string -> string -> string * out_channel

То же, что и Filename.temp_file, но возвращает и имя свежесозданного временного файла, и открытый (атомарно) выходной канал на этот файл. Эта функция более безопасна, чем temp_file: нет риска, что временный файл будет изменён (например, заменён символьной ссылкой) до открытия его программой. Необязательный аргумент mode - список дополнительных флагов для управления открытием файла. Он может содержать один или несколько из Open_append, Open_binary, и Open_text. По умолчанию [Open_text] (открытие в текстовом режиме). Файл создаётся с правами perms (по умолчанию читаемый и записываемый только владельцем файла, 0o600).

  • Before 4.03.0 no ?perms optional argument
  • Before 3.11.2 no ?temp_dir optional argument
  • Raises Sys_error если файл не может быть открыт.
val get_temp_dir_name : unit -> string

Имя временной директории: в Unix - значение переменной окружения TMPDIR, или "/tmp", если переменная не установлена. В Windows - значение переменной окружения TEMP, или ".", если переменная не установлена. Временную директорию можно изменить с помощью Filename.set_temp_dir_name.

  • Since 4.00.0
val set_temp_dir_name : string -> unit

Изменить временную директорию, возвращаемую Filename.get_temp_dir_name и используемую Filename.temp_file и Filename.open_temp_file. Временная директория - локальное значение области, наследуемое дочерними областями.

  • Since 4.00.0
val quote : string -> string

Возвращает цитированную версию имени файла, подходящую для использования в качестве одного аргумента в командной строке, экранируя все метасимволы. Предупреждение: в Windows выход пригоден только для программ, которые следуют стандартным правилам цитирования Windows.

val quote_command : string ->       ?stdin:string -> ?stdout:string -> ?stderr:string -> string list -> string

quote_command cmd args возвращает цитированную командную строку, пригодную для использования в качестве аргумента для Sys.command, Unix.system и функций Unix.open_process.

Строка cmd - это вызываемая команда. Список args - это список аргументов, которые должны быть переданы этой команде. Он может быть пустым.

Необязательные аргументы ?stdin, ?stdout, и ?stderr - имена файлов, используемые для перенаправления стандартного ввода, стандартного вывода или стандартной ошибки команды. Если ~stdin:f задано, выполняется перенаправление < f, и стандартный ввод команды читает из файла f. Если ~stdout:f задано, выполняется перенаправление > f, и стандартный вывод команды записывается в файл f. Если ~stderr:f задано, выполняется перенаправление 2> f, и стандартная ошибка команды записывается в файл f. Если оба ~stdout:f и ~stderr:f заданы с идентичным именем файла f, выполняется перенаправление 2>&1, так что стандартный вывод и стандартная ошибка команды выводятся в один файл f.

В Unix и Cygwin команда, аргументы и перенаправления, если таковые имеются, цитируются с помощью Filename.quote, а затем конкатенируются. В Win32 выполняется дополнительное цитирование по необходимости для оболочки cmd.exe, вызываемой Sys.command.

  • Since 4.10.0
  • Raises Failure если команда не может быть экранирована на текущей платформе.

© 1995-2022 INRIA.
https://v2.ocaml.org/releases/5.0/htmlman/libref/Filename.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API