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