Spec-Zone.ru › OCaml

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

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
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 нет необязательного аргумента ?perms
  • Before 3.11.2 нет необязательного аргумента ?temp_dir
  • Raises Sys_error если файл не удалось открыть.
val temp_dir : ?temp_dir:string -> ?perms:int -> string -> string -> string

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

Если temp_dir не существует, эта функция его не создаёт. Вместо этого она выводит Sys_error.

  • Since 5.1
  • Raises Sys_error если директорию не удалось создать.
val get_temp_dir_name : unit -> string

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

  • Since 4.00
val set_temp_dir_name : string -> unit

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

  • Since 4.00
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
  • Raises Failure если команду нельзя экранировать на текущей платформе.

© 1995-2024 INRIA.
https://ocaml.org/manual/5.2/api/Filename.html

Spec-Zone.ru

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