Spec-Zone.ru › Julia 1.7

Файловая система

Base.Filesystem.pwdФункция

pwd() -> AbstractString

Получить текущую рабочую директорию.

См. также: cd, tempdir.

Примеры

julia> pwd()
"/home/JuliaUser"

julia> cd("/home/JuliaUser/Projects/julia")

julia> pwd()
"/home/JuliaUser/Projects/julia"
исходный код

Base.Filesystem.cdМетод

cd(dir::AbstractString=homedir())

Установить текущую рабочую директорию.

См. также: pwd, mkdir, mkpath, mktempdir.

Примеры

julia> cd("/home/JuliaUser/Projects/julia")

julia> pwd()
"/home/JuliaUser/Projects/julia"

julia> cd()

julia> pwd()
"/home/JuliaUser"
исходный код

Base.Filesystem.cdМетод

cd(f::Function, dir::AbstractString=homedir())

Временно изменить текущую рабочую директорию на dir, применить функцию f и, наконец, вернуться в исходную директорию.

Примеры

julia> pwd()
"/home/JuliaUser"

julia> cd(readdir, "/home/JuliaUser/Projects/julia")
34-element Array{String,1}:
 ".circleci"
 ".freebsdci.sh"
 ".git"
 ".gitattributes"
 ".github"
 ⋮
 "test"
 "ui"
 "usr"
 "usr-staging"

julia> pwd()
"/home/JuliaUser"
исходный код

Base.Filesystem.readdirФункция

readdir(dir::AbstractString=pwd();
    join::Bool = false,
    sort::Bool = true,
) -> Vector{String}

Возвращает имена файлов в директории dir или в текущей рабочей директории, если не указано иначе. Если join ложно, readdir возвращает только имена файлов в директории как есть; если join истинно, оно возвращает joinpath(dir, name) для каждого name, так что возвращаемые строки — полные пути. Если вы хотите получить абсолютные пути, вызовите readdir с абсолютным путём к директории и join, установленным в true.

По умолчанию readdir сортирует список возвращаемых имён. Если вы хотите пропустить сортировку имён и получить их в том порядке, в котором их отображает файловая система, вы можете использовать readdir(dir, sort=false) для отказа от сортировки.

Ключевые аргументы join и sort требуют как минимум Julia 1.4.

Примеры

julia> cd("/home/JuliaUser/dev/julia")

julia> readdir()
30-element Array{String,1}:
 ".appveyor.yml"
 ".git"
 ".gitattributes"
 ⋮
 "ui"
 "usr"
 "usr-staging"

julia> readdir(join=true)
30-element Array{String,1}:
 "/home/JuliaUser/dev/julia/.appveyor.yml"
 "/home/JuliaUser/dev/julia/.git"
 "/home/JuliaUser/dev/julia/.gitattributes"
 ⋮
 "/home/JuliaUser/dev/julia/ui"
 "/home/JuliaUser/dev/julia/usr"
 "/home/JuliaUser/dev/julia/usr-staging"

julia> readdir("base")
145-element Array{String,1}:
 ".gitignore"
 "Base.jl"
 "Enums.jl"
 ⋮
 "version_git.sh"
 "views.jl"
 "weakkeydict.jl"

julia> readdir("base", join=true)
145-element Array{String,1}:
 "base/.gitignore"
 "base/Base.jl"
 "base/Enums.jl"
 ⋮
 "base/version_git.sh"
 "base/views.jl"
 "base/weakkeydict.jl"```

julia> readdir(abspath("base"), join=true)
145-element Array{String,1}:
 "/home/JuliaUser/dev/julia/base/.gitignore"
 "/home/JuliaUser/dev/julia/base/Base.jl"
 "/home/JuliaUser/dev/julia/base/Enums.jl"
 ⋮
 "/home/JuliaUser/dev/julia/base/version_git.sh"
 "/home/JuliaUser/dev/julia/base/views.jl"
 "/home/JuliaUser/dev/julia/base/weakkeydict.jl"
исходный код

Base.Filesystem.walkdirФункция

walkdir(dir; topdown=true, follow_symlinks=false, onerror=throw)

Возвращает итератор, который обходит древовидную структуру каталогов заданной директории. Итератор возвращает кортеж, содержащий (rootpath, dirs, files). Дерево каталогов можно обходить сверху вниз или снизу вверх. Если walkdir или stat сталкивается с IOError, по умолчанию он повторно генерирует ошибку. Обработку ошибок можно настроить с помощью ключевого аргумента onerror. onerror вызывается с IOError в качестве аргумента.

Примеры

for (root, dirs, files) in walkdir(".")
    println("Directories in $root")
    for dir in dirs
        println(joinpath(root, dir)) # path to directories
    end
    println("Files in $root")
    for file in files
        println(joinpath(root, file)) # path to files
    end
end
julia> mkpath("my/test/dir");

julia> itr = walkdir("my");

julia> (root, dirs, files) = first(itr)
("my", ["test"], String[])

julia> (root, dirs, files) = first(itr)
("my/test", ["dir"], String[])

julia> (root, dirs, files) = first(itr)
("my/test/dir", String[], String[])
исходный код

Base.Filesystem.mkdirФункция

mkdir(path::AbstractString; mode::Unsigned = 0o777)

Создаёт новую директорию с именем path и разрешениями mode. mode по умолчанию 0o777, модифицированные текущей маской создания файлов. Эта функция никогда не создаёт более одной директории. Если директория уже существует или некоторые промежуточные директории отсутствуют, функция генерирует ошибку. Смотрите mkpath для функции, которая создаёт все необходимые промежуточные директории. Возвращает path.

Примеры

julia> mkdir("testingdir")
"testingdir"

julia> cd("testingdir")

julia> pwd()
"/home/JuliaUser/testingdir"
исходный код

Base.Filesystem.mkpathФункция

mkpath(path::AbstractString; mode::Unsigned = 0o777)

Создаёт все директории в заданном path, с разрешениями mode. mode по умолчанию 0o777, модифицированные текущей маской создания файлов. В отличие от mkdir, mkpath не генерирует ошибку, если path (или части её) уже существуют. Возвращает path.

Примеры

julia> mkdir("testingdir")
"testingdir"

julia> cd("testingdir")

julia> pwd()
"/home/JuliaUser/testingdir"

julia> mkpath("my/test/dir")
"my/test/dir"

julia> readdir()
1-element Array{String,1}:
 "my"

julia> cd("my")

julia> readdir()
1-element Array{String,1}:
 "test"

julia> readdir("test")
1-element Array{String,1}:
 "dir"
исходный код

Base.Filesystem.symlinkФункция

symlink(target::AbstractString, link::AbstractString; dir_target = false)

Создаёт символическую ссылку на target с именем link.

В Windows символические ссылки должны быть явно объявлены как ссылки на директорию или нет. Если target уже существует, по умолчанию тип link будет автоматически определён. Однако, если target не существует, функция по умолчанию создаёт файловую символическую ссылку, если dir_target не установлено в true. Обратите внимание, что если пользователь установит dir_target, но target существует и является файлом, всё равно будет создана символическая ссылка на директорию, но обращение к ссылке завершится ошибкой, так же, как если бы пользователь создал файловую символическую ссылку (вызвав symlink() с dir_target установленным в false) и попытался обратиться к ней как к директории.

Кроме того, в Windows есть два способа создания ссылки; символические ссылки и точки соединения. Точки соединения немного эффективнее, но не поддерживают относительные пути, поэтому, если запрашивается относительная символическая ссылка на директорию (как показано в isabspath(target), возвращающем false ), используется символическая ссылка, в противном случае используется точка соединения. Лучшей практикой создания символических ссылок в Windows является создание их только после того, как файлы/директории, на которые они ссылаются, уже созданы.

Эта функция генерирует ошибку в операционных системах, не поддерживающих мягкие символические ссылки, таких как Windows XP.

Ключевой аргумент dir_target был добавлен в Julia 1.6. До этого символические ссылки на несуществующие пути в Windows всегда были файловыми символическими ссылками, а относительные символические ссылки на директории не поддерживались.

исходный код

Base.Filesystem.readlinkФункция

readlink(path::AbstractString) -> AbstractString

Возвращает целевое расположение, на которое указывает символическая ссылка path.

исходный код

Base.Filesystem.chmodФункция

chmod(path::AbstractString, mode::Integer; recursive::Bool=false)

Изменить режим разрешений path на mode. В настоящее время поддерживаются только целые числа mode (например, 0o777). Если recursive=true и путь — это директория, все разрешения в этой директории будут изменены рекурсивно. Возвращает path.

До Julia 1.6 данная функция не правильно манипулировала ACL файловой системы в Windows, поэтому она только устанавливала биты только чтения для файлов. Теперь она может манипулировать ACL.

исходный код

Base.Filesystem.chownФункция

chown(path::AbstractString, owner::Integer, group::Integer=-1)

Изменить владельца и/или группу path на owner и/или group. Если значение, введённое для owner или group, равно -1, соответствующий идентификатор не изменится. В настоящее время поддерживаются только целые числа owner и group. Возвращает path.

исходный код

Base.Libc.RawFDТип

RawFD

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

исходный код

Base.statФункция

stat(file)

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

Имя Описание
desc Путь или дескриптор файла ОС
size Размер файла (в байтах)
device Идентификатор устройства, содержащего файл
inode Номер индексного узла файла
mode Режим защиты файла
nlink Количество жёстких ссылок на файл
uid Идентификатор пользователя владельца файла
gid Идентификатор группы владельца файла
rdev Если этот файл относится к устройству, идентификатор устройства, к которому он относится
blksize Предпочтительный размер блока файловой системы для файла
blocks Количество выделенных таких блоков
mtime Маркер времени Unix, когда файл был последний раз изменён
ctime Маркер времени Unix, когда метаданные файла были изменены
исходный код

Base.Filesystem.lstatФункция

lstat(file)

Как stat, но для символических ссылок получает информацию о самой ссылке, а не о файле, на который она указывает. Эту функцию необходимо вызывать для пути к файлу, а не для объекта файла или дескриптора файла.

исходный код

Base.Filesystem.ctimeФункция

ctime(file)

Эквивалентно stat(file).ctime.

исходный код

Base.Filesystem.mtimeФункция

mtime(file)

Эквивалентно stat(file).mtime.

исходный код

Base.Filesystem.filemodeФункция

filemode(file)

Эквивалентно stat(file).mode.

исходный код

Base.filesizeФункция

filesize(path...)

Эквивалентно stat(file).size.

исходный код

Base.Filesystem.upermФункция

uperm(file)

Получить разрешения владельца файла в виде битового поля:

Значение Описание
01 Разрешение на выполнение
02 Разрешение на запись
04 Разрешение на чтение

См. разрешенные аргументы в stat.

исходный код

Base.Filesystem.gpermФункция

gperm(file)

Подобно uperm, но получает разрешения группы, владеющей файлом.

исходный код

Base.Filesystem.opermФункция

operm(file)

Подобно uperm, но получает разрешения для людей, которые не являются владельцами файла и не входят в группу, владеющую файлом

исходный код

Base.Filesystem.cpФункция

cp(src::AbstractString, dst::AbstractString; force::Bool=false, follow_symlinks::Bool=false)

Копирует файл, ссылку или каталог из src в dst. force=true предварительно удалит существующий dst.

Если follow_symlinks=false, и src является символической ссылкой, dst будет создан как символическая ссылка. Если follow_symlinks=true и src является символической ссылкой, dst будет копией файла или каталога, на который src ссылается. Возвращает dst.

исходный код

Base.downloadФункция

download(url::AbstractString, [path::AbstractString = tempname()]) -> path

Загружает файл с указанного URL, сохраняя его в местоположение path, или, если не указано, в временный путь. Возвращает путь загруженного файла.

Начиная с Julia 1.6, эта функция устарела и является всего лишь тонким обёрткой вокруг Downloads.download. В новом коде следует использовать эту функцию напрямую вместо вызова этой.

исходный код

Base.Filesystem.mvФункция

mv(src::AbstractString, dst::AbstractString; force::Bool=false)

Перемещает файл, ссылку или каталог из src в dst. force=true предварительно удалит существующий dst . Возвращает dst.

Примеры

julia> write("hello.txt", "world");

julia> mv("hello.txt", "goodbye.txt")
"goodbye.txt"

julia> "hello.txt" in readdir()
false

julia> readline("goodbye.txt")
"world"

julia> write("hello.txt", "world2");

julia> mv("hello.txt", "goodbye.txt")
ERROR: ArgumentError: 'goodbye.txt' exists. `force=true` is required to remove 'goodbye.txt' before moving.
Stacktrace:
 [1] #checkfor_mv_cp_cptree#10(::Bool, ::Function, ::String, ::String, ::String) at ./file.jl:293
[...]

julia> mv("hello.txt", "goodbye.txt", force=true)
"goodbye.txt"

julia> rm("goodbye.txt");
исходный код

Base.Filesystem.rmФункция

rm(path::AbstractString; force::Bool=false, recursive::Bool=false)

Удаляет файл, ссылку или пустой каталог по указанному пути. Если force=true передано, не существующий путь не обрабатывается как ошибка. Если recursive=true передано, и путь является каталогом, все содержимое удаляется рекурсивно.

Примеры

julia> mkpath("my/test/dir");

julia> rm("my", recursive=true)

julia> rm("this_file_does_not_exist", force=true)

julia> rm("this_file_does_not_exist")
ERROR: IOError: unlink("this_file_does_not_exist"): no such file or directory (ENOENT)
Stacktrace:
[...]
исходный код

Base.Filesystem.touchФункция

touch(path::AbstractString)

Обновляет маркер времени последнего изменения файла на текущее время.

Если файла не существует, создаётся новый файл.

Возвращает path.

Примеры

julia> write("my_little_file", 2);

julia> mtime("my_little_file")
1.5273815391135583e9

julia> touch("my_little_file");

julia> mtime("my_little_file")
1.527381559163435e9

Мы можем увидеть, что mtime был изменён touch.

исходный код

Base.Filesystem.tempnameФункция

tempname(parent=tempdir(); cleanup=true) -> String

Генерирует временный путь к файлу. Эта функция возвращает только путь; файл не создаётся. Путь, вероятно, будет уникальным, но это не гарантируется из-за очень маловероятного совпадения двух одновременных вызовов tempname сгенерировавшими одноимённые файлы. Имя гарантированно отличается от всех файлов, уже существующих на момент вызова tempname.

При вызове без аргументов временное имя будет абсолютным путём к временному имени в системном временном каталоге, как указано в tempdir(). Если указан аргумент каталога parent, временный путь будет находиться в этом каталоге.

Опция cleanup управляет тем, пытается ли процесс автоматически удалить возвращённый путь при завершении процесса. Обратите внимание, что функция tempname не создаёт никаких файлов или каталогов в возвращённом месте, поэтому нет ничего для очистки, если вы не создадите там файл или каталог. Если вы это сделаете, и clean имеет значение true, он будет удалён при завершении процесса.

Аргументы parent и cleanup были добавлены в 1.4. До Julia 1.4 путь tempname никогда не очищался при завершении процесса.

Это может привести к уязвимостям, если другой процесс получит то же имя файла и создаст файл до того, как вы сможете. Откройте файл с помощью JL_O_EXCL, если это вызывает беспокойство. Также рекомендуется использовать mktemp() вместо этого.

исходный код

Base.Filesystem.tempdirФункция

tempdir()

Получает путь к временной директории. В Windows, tempdir() использует первую переменную окружения из упорядоченного списка TMP, TEMP, USERPROFILE. На всех остальных операционных системах, tempdir() использует первую переменную окружения из упорядоченного списка TMPDIR, TMP, TEMP, и TEMPDIR. Если ни одна из них не найдена, используется путь "/tmp".

исходный код

Base.Filesystem.mktempМетод

mktemp(parent=tempdir(); cleanup=true) -> (path, io)

Возвращает (path, io), где path — путь к новому временному файлу в parent и io — открытый объект файла для этого пути. Опция cleanup управляет автоматическим удалением временного файла при завершении процесса.

Ключевой аргумент cleanup был добавлен в Julia 1.3. Соответственно, начиная с 1.3, Julia удалит временные пути, созданные функцией mktemp, при завершении процесса Julia, если cleanup не установлен явно в значение false.

исходный код

Base.Filesystem.mktempМетод

mktemp(f::Function, parent=tempdir())

Применяет функцию f к результату вызова mktemp(parent) и удаляет временный файл по завершении.

См. также: mktempdir.

исходный код

Base.Filesystem.mktempdirМетод

mktempdir(parent=tempdir(); prefix="jl_", cleanup=true) -> path

Создаёт временную директорию в директории parent с именем, сгенерированным из заданного префикса и случайного суффикса, и возвращает её путь. Кроме того, любые заключительные символы X могут быть заменены случайными. Если parent не существует, возникает ошибка. Опция cleanup управляет автоматическим удалением временной директории при завершении процесса.

Ключевой аргумент prefix был добавлен в Julia 1.2.

Ключевой аргумент cleanup был добавлен в Julia 1.3. Соответственно, начиная с 1.3, Julia удалит временные пути, созданные функцией mktempdir, при завершении процесса Julia, если cleanup не установлен явно в значение false.

См. также: mktemp, mkdir.

исходный код

Base.Filesystem.mktempdirМетод

mktempdir(f::Function, parent=tempdir(); prefix="jl_")

Применяет функцию f к результату вызова mktempdir(parent; prefix) и удаляет временную директорию и все её содержимое по завершении.

См. также: mktemp, mkdir.

Ключевой аргумент prefix был добавлен в Julia 1.2.

исходный код

Base.Filesystem.isblockdevФункция

isblockdev(path) -> Bool

Возвращает true если path это устройство блочного ввода-вывода, false в противном случае.

исходный код

Base.Filesystem.ischardevФункция

ischardev(path) -> Bool

Возвращает true если path это устройство символьного ввода-вывода, false в противном случае.

исходный код

Base.Filesystem.isdirФункция

isdir(path) -> Bool

Возвращает true если path это каталог, false в противном случае.

Примеры

julia> isdir(homedir())
true

julia> isdir("not/a/directory")
false

См. также isfile и ispath.

исходный код

Base.Filesystem.isfifoФункция

isfifo(path) -> Bool

Возвращает true если path это FIFO, false в противном случае.

исходный код

Base.Filesystem.isfileФункция

isfile(path) -> Bool

Возвращает true если path это обычный файл, false в противном случае.

Примеры

julia> isfile(homedir())
false

julia> f = open("test_file.txt", "w");

julia> isfile(f)
true

julia> close(f); rm("test_file.txt")

См. также isdir и ispath.

исходный код

Base.Filesystem.islinkФункция

islink(path) -> Bool

Возвращает true если path это символическая ссылка, false в противном случае.

исходный код

Base.Filesystem.ismountФункция

ismount(path) -> Bool

Возвращает true если path это точка монтирования, false в противном случае.

исходный код

Base.Filesystem.ispathФункция

ispath(path) -> Bool

Возвращает true если по указанному пути path существует действительный элемент файловой системы, иначе возвращает false. Это обобщение функций isfile, isdir и т.д.

исходный код

Base.Filesystem.issetgidФункция

issetgid(path) -> Bool

Возвращает true если у path установлен флаг setgid, false в противном случае.

исходный код

Base.Filesystem.issetuidФункция

issetuid(path) -> Bool

Возвращает true если у path установлен флаг setuid, false в противном случае.

исходный код

Base.Filesystem.issocketФункция

issocket(path) -> Bool

Возвращает true если path это сокет, false в противном случае.

исходный код

Base.Filesystem.isstickyФункция

issticky(path) -> Bool

Возвращает true если у path установлен бит sticky, false в противном случае.

исходный код

Base.Filesystem.homedirФункция

homedir() -> String

Возвращает домашнюю директорию текущего пользователя.

homedir определяет домашнюю директорию с помощью libuv'овской uv_os_homedir. Подробности (например, о том, как задать домашнюю директорию через переменные окружения), смотрите в uv_os_homedir документации.

исходный код

Base.Filesystem.dirnameФункция

dirname(path::AbstractString) -> AbstractString

Получить часть пути, представляющую директорию. Конечные символы ('/' или '\') в пути учитываются как часть пути.

Примеры

julia> dirname("/home/myuser")
"/home"

julia> dirname("/home/myuser/")
"/home/myuser"

См. также basename.

исходный код

Base.Filesystem.basenameФункция

basename(path::AbstractString) -> AbstractString

Получить часть пути, представляющую имя файла.

Эта функция немного отличается от Unix-программы basename, где конечные слэши игнорируются, т.е. $ basename /foo/bar/ возвращает bar, тогда как basename в Julia возвращает пустую строку "".

Примеры

julia> basename("/home/myuser/example.jl")
"example.jl"

julia> basename("/home/myuser/")
""

См. также dirname.

исходный код

Base.Filesystem.isabspathФункция

isabspath(path::AbstractString) -> Bool

Определить, является ли путь абсолютным (начинается с корневой директории).

Примеры

julia> isabspath("/home")
true

julia> isabspath("home")
false
исходный код

Base.Filesystem.isdirpathФункция

isdirpath(path::AbstractString) -> Bool

Определить, ссылается ли путь на директорию (например, заканчивается символом разделителя путей).

Примеры

julia> isdirpath("/home")
false

julia> isdirpath("/home/")
true
исходный код

Base.Filesystem.joinpathФункция

joinpath(parts::AbstractString...) -> String
joinpath(parts::Vector{AbstractString}) -> String
joinpath(parts::Tuple{AbstractString}) -> String

Объединить компоненты пути в полный путь. Если какой-либо аргумент является абсолютным путем или (в Windows) имеет указание диска, которое не совпадает с диском, вычисленным для объединения предыдущих путей, то предыдущие компоненты отбрасываются.

Примечание для Windows: поскольку существует текущая директория для каждого диска, joinpath("c:", "foo") представляет путь относительно текущей директории на диске "c:", поэтому это равно "c:foo", а не "c:\foo". Кроме того, joinpath обрабатывает это как неабсолютный путь и игнорирует регистр букв диска, следовательно joinpath("C:\A","c:b") = "C:\A\b".

Примеры

julia> joinpath("/home/myuser", "example.jl")
"/home/myuser/example.jl"
julia> joinpath(["/home/myuser", "example.jl"])
"/home/myuser/example.jl"
исходный код

Base.Filesystem.abspathФункция

abspath(path::AbstractString) -> String

Преобразовать путь в абсолютный путь, добавив текущую директорию при необходимости. Также нормализует путь, как в normpath.

исходный код
abspath(path::AbstractString, paths::AbstractString...) -> String

Преобразовать набор путей в абсолютный путь, объединив их вместе и добавив текущую директорию при необходимости. Эквивалентно abspath(joinpath(path, paths...)).

исходный код

Base.Filesystem.normpathФункция

normpath(path::AbstractString) -> String

Нормализовать путь, удалив записи "." и "..".

Примеры

julia> normpath("/home/myuser/../example.jl")
"/home/example.jl"
исходный код
normpath(path::AbstractString, paths::AbstractString...) -> String

Преобразовать набор путей в нормализованный путь, объединив их вместе и удалив записи "." и "..". Эквивалентно normpath(joinpath(path, paths...)).

исходный код

Base.Filesystem.realpathФункция

realpath(path::AbstractString) -> String

Канонизировать путь, расширяя символические ссылки и удаляя записи "." и "..". В файловых системах с регистронезависимым регистропо сохраняемым (обычно Mac и Windows) возвращается хранимый регистром путь.

(Эта функция вызывает исключение, если path не существует в файловой системе.)

исходный код

Base.Filesystem.relpathФункция

relpath(path::AbstractString, startpath::AbstractString = ".") -> AbstractString

Возвратить относительный путь к path либо из текущей директории, либо из необязательной начальной директории. Это вычисление пути: доступ к файловой системе не используется для подтверждения существования или природы path или startpath.

В Windows чувствительность к регистру применяется к каждой части пути, за исключением букв диска. Если path и startpath ссылаются на разные диски, возвращается абсолютный путь path.

исходный код

Base.Filesystem.expanduserФункция

expanduser(path::AbstractString) -> AbstractString

В системах Unix заменяет символ тильды в начале пути домашним каталогом текущего пользователя.

исходный код

Base.Filesystem.splitdirФункция

splitdir(path::AbstractString) -> (AbstractString, AbstractString)

Разделить путь на кортеж из имени директории и имени файла.

Примеры

julia> splitdir("/home/myuser")
("/home", "myuser")
исходный код

Base.Filesystem.splitdriveФункция

splitdrive(path::AbstractString) -> (AbstractString, AbstractString)

В Windows разделяет путь на часть буквенного обозначения диска и часть пути. В системах Unix первый компонент всегда пустая строка.

исходный код

Base.Filesystem.splitextФункция

splitext(path::AbstractString) -> (AbstractString, AbstractString)

Если последняя часть пути содержит одну или несколько точек, разделить путь на все до последней точки и все, включая и после последней точки. В противном случае вернуть кортеж из аргумента без изменений и пустой строки. "splitext" сокращенно от "split extension".

Примеры

julia> splitext("/home/myuser/example.jl")
("/home/myuser/example", ".jl")

julia> splitext("/home/myuser/example.tar.gz")
("/home/myuser/example.tar", ".gz")

julia> splitext("/home/my.user/example")
("/home/my.user/example", "")
исходный код

Base.Filesystem.splitpathФункция

splitpath(path::AbstractString) -> Vector{String}

Разделить путь к файлу на все его компоненты пути. Это противоположно joinpath. Возвращает массив подстрок, по одной для каждой директории или файла в пути, включая корневую директорию, если она есть.

Эта функция требует как минимум Julia 1.1.

Примеры

julia> splitpath("/home/myuser/example.jl")
4-element Vector{String}:
 "/"
 "home"
 "myuser"
 "example.jl"
исходный код

© 2009–2021 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.7.0/base/file/

Spec-Zone.ru

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