Модуль Имя файла
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