Spec-Zone.ru › OCaml 4.14

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

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 нет необязательного аргумента ?temp_dir
  • 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 нет необязательного аргумента ?perms
  • Before 3.11.2 нет необязательного аргумента ?temp_dir
  • 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 temp_dir_name : string
Устарело. Используйте Filename.get_temp_dir_name вместо этого.

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

  • Since 3.09.1
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/4.14/htmlman/libref/Filename.html

Spec-Zone.ru

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