Filesystem
Base.read — Methodread(filename::AbstractString)Читает все содержимое файла как Vector{UInt8}.
read(filename::AbstractString, String)Читает все содержимое файла как строку.
read(filename::AbstractString, args...)Открывает файл и читает его содержимое. args передается в read: это эквивалентно open(io->read(io, args...), filename).
Base.write — Methodwrite(filename::AbstractString, content)Запишите каноническое двоичное представление content в файл, который будет создан, если он еще не существует, или перезаписан, если он существует.
Возвращает количество байт, записанных в файл.
Base.Filesystem.pwd — Functionpwd() -> StringПолучить текущий рабочий каталог.
Примеры
julia> pwd()
"/home/JuliaUser"
julia> cd("/home/JuliaUser/Projects/julia")
julia> pwd()
"/home/JuliaUser/Projects/julia"Base.Filesystem.cd — Methodcd(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 — Methodcd(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 — Functionreaddir(dir::AbstractString=pwd();
join::Bool = false,
sort::Bool = true,
) -> Vector{String}Возвращает имена в директории dir или в текущей рабочей директории, если не указано. Когда join равно false, readdir возвращает только имена в директории как есть; когда join равно true, он возвращает joinpath(dir, name) для каждого name, так что возвращаемые строки являются полными путями. Если вы хотите получить абсолютные пути, вызовите readdir с абсолютным путем к директории и join, установленным в true.
По умолчанию readdir сортирует список имен, который он возвращает. Если вы хотите пропустить сортировку имен и получить их в порядке, в котором их перечисляет файловая система, вы можете использовать readdir(dir, sort=false), чтобы отказаться от сортировки.
Смотрите также: walkdir.
Аргументы ключевых слов 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 — Functionwalkdir(dir; topdown=true, follow_symlinks=false, onerror=throw)Возвращает итератор, который проходит по дереву каталогов указанного каталога. Итератор возвращает кортеж, содержащий (rootpath, dirs, files). Дерево каталогов можно обходить сверху вниз или снизу вверх. Если walkdir или stat сталкиваются с IOError, ошибка будет повторно выброшена по умолчанию. Пользовательская функция обработки ошибок может быть предоставлена через аргумент ключевого слова onerror. onerror вызывается с IOError в качестве аргумента.
См. также: readdir.
Примеры
for (root, dirs, files) in walkdir(".")
println("Каталоги в $root")
for dir in dirs
println(joinpath(root, dir)) # путь к каталогам
end
println("Файлы в $root")
for file in files
println(joinpath(root, file)) # путь к файлам
end
endjulia> 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 — Functionmkdir(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 — Functionmkpath(path::AbstractString; mode::Unsigned = 0o777)Создайте все промежуточные директории в path по мере необходимости. Директории создаются с правами mode, которые по умолчанию равны 0o777 и изменяются текущей маской создания файлов. В отличие от mkdir, mkpath не выдает ошибку, если path (или его части) уже существуют. Однако будет выброшена ошибка, если path (или его части) указывают на существующий файл. Возвращает path.
Если path включает имя файла, вам, вероятно, следует использовать mkpath(dirname(path)), чтобы избежать создания директории с использованием имени файла.
Примеры
julia> cd(mktempdir())
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"
julia> mkpath("intermediate_dir/actually_a_directory.txt") # создает две директории
"intermediate_dir/actually_a_directory.txt"
julia> isdir("intermediate_dir/actually_a_directory.txt")
true
Base.Filesystem.hardlink — Functionhardlink(src::AbstractString, dst::AbstractString)Создает жесткую ссылку на существующий исходный файл src с именем dst. Назначение, dst, не должно существовать.
См. также: symlink.
Этот метод был добавлен в Julia 1.8.
Base.Filesystem.symlink — Functionsymlink(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 является создание их только после того, как файлы/каталоги, на которые они ссылаются, уже созданы.
См. также: hardlink.
Эта функция вызывает ошибку в операционных системах, которые не поддерживают мягкие символические ссылки, таких как Windows XP.
Аргумент ключевого слова dir_target был добавлен в Julia 1.6. До этого символические ссылки на несуществующие пути в Windows всегда были файловыми символическими ссылками, и относительные символические ссылки на каталоги не поддерживались.
Base.Filesystem.readlink — Functionreadlink(path::AbstractString) -> StringВозвращает целевое местоположение, на которое указывает символическая ссылка path.
Base.Filesystem.chmod — Functionchmod(path::AbstractString, mode::Integer; recursive::Bool=false)Измените режим разрешений path на mode. В настоящее время поддерживаются только целочисленные mode (например, 0o777). Если recursive=true и путь является директорией, все разрешения в этой директории будут изменены рекурсивно. Верните path.
До Julia 1.6 эта функция неправильно управляла ACL файловой системы на Windows, поэтому она только устанавливала биты только для чтения на файлах. Теперь она может управлять ACL.
Base.Filesystem.chown — Functionchown(path::AbstractString, owner::Integer, group::Integer=-1)Измените владельца и/или группу path на owner и/или group. Если введенное значение для owner или group равно -1, соответствующий идентификатор не изменится. В настоящее время поддерживаются только целые числа для owner и group. Возвращает path.
Base.Libc.RawFD — TypeRawFDПримитивный тип, который оборачивает нативный файловый дескриптор ОС. RawFD можно передавать в методы, такие как stat, чтобы узнать информацию о соответствующем файле, и также можно использовать для открытия потоков, при этом RawFD описывает файл ОС, поддерживающий поток.
Base.stat — Functionstat(file)Возвращает структуру, поля которой содержат информацию о файле. Поля структуры:
| Имя | Тип | Описание |
|---|---|---|
| desc | Union{String, Base.OS_HANDLE} | Путь или дескриптор файла ОС |
| size | Int64 | Размер (в байтах) файла |
| device | UInt | ID устройства, на котором находится файл |
| inode | UInt | Номер inode файла |
| mode | UInt | Режим защиты файла |
| nlink | Int | Количество жестких ссылок на файл |
| uid | UInt | Идентификатор пользователя владельца файла |
| gid | UInt | Идентификатор группы владельца файла |
| rdev | UInt | Если этот файл относится к устройству, ID устройства, к которому он относится |
| blksize | Int64 | Предпочитаемый размер блока файловой системы для файла |
| blocks | Int64 | Количество выделенных блоков по 512 байт |
| mtime | Float64 | Unix временная метка последнего изменения файла |
| ctime | Float64 | Unix временная метка, когда метаданные файла были изменены |
Base.Filesystem.diskstat — Functiondiskstat(path=pwd())Возвращает статистику в байтах о диске, который содержит файл или каталог, на который указывает path. Если аргумент не передан, возвращается статистика о диске, который содержит текущий рабочий каталог.
Этот метод был добавлен в Julia 1.8.
Base.Filesystem.lstat — Functionlstat(file)Как и stat, но для символических ссылок получает информацию о самой ссылке, а не о файле, на который она ссылается. Эта функция должна вызываться по пути к файлу, а не по объекту файла или дескриптору файла.
Base.Filesystem.ctime — Functionctime(file)Эквивалентно stat(file).ctime.
Base.Filesystem.mtime — Functionmtime(file)Эквивалентно stat(file).mtime.
Base.Filesystem.filemode — Functionfilemode(file)Эквивалентно stat(file).mode.
Base.filesize — Functionfilesize(path...)Эквивалентно stat(file).size.
Base.Filesystem.uperm — Functionuperm(file)Получите права владельца файла в виде битового поля
| Значение | Описание |
|---|---|
| 01 | Разрешение на выполнение |
| 02 | Разрешение на запись |
| 04 | Разрешение на чтение |
Для допустимых аргументов смотрите stat.
Base.Filesystem.gperm — Functiongperm(file)Как uperm, но получает права доступа группы, владеющей файлом.
Base.Filesystem.operm — Functionoperm(file)Как uperm, но получает разрешения для людей, которые не являются владельцами файла и не являются членами группы, владеющей файлом.
Base.Filesystem.cp — Functioncp(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.
Функция cp отличается от команды cp. Функция cp всегда работает с предположением, что dst является файлом, в то время как команда выполняет разные действия в зависимости от того, является ли dst каталогом или файлом. Использование force=true, когда dst является каталогом, приведет к потере всех содержимого, находящегося в каталоге dst, и dst станет файлом, содержащим содержимое src вместо этого.
Base.download — Functiondownload(url::AbstractString, [path::AbstractString = tempname()]) -> pathСкачивает файл по указанному url, сохраняя его в расположение path, или, если не указано, во временное расположение. Возвращает путь к загруженному файлу.
Начиная с Julia 1.6, эта функция устарела и является просто тонкой оболочкой вокруг Downloads.download. В новом коде вы должны использовать эту функцию напрямую вместо вызова этой.
Base.Filesystem.mv — Functionmv(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' существует. Для удаления 'goodbye.txt' перед перемещением требуется `force=true`.
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 — Functionrm(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 — FunctionBase.touch(::Pidfile.LockMonitor)Обновите mtime на блокировке, чтобы указать, что она все еще актуальна.
Смотрите также ключевое слово refresh в конструкторе mkpidlock.
touch(path::AbstractString)
touch(fd::File)Обновляет временную метку последнего изменения файла до текущего времени.
Если файл не существует, создается новый файл.
Возвращает 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 — Functiontempname(parent=tempdir(); cleanup=true) -> StringСгенерировать путь к временному файлу. Эта функция возвращает только путь; файл не создается. Путь, вероятно, будет уникальным, но это не может быть гарантировано из-за очень удаленной возможности того, что два одновременных вызова tempname сгенерируют одно и то же имя файла. Имя гарантированно будет отличаться от всех файлов, уже существующих на момент вызова tempname.
При вызове без аргументов временное имя будет абсолютным путем к временному имени в системном временном каталоге, указанном с помощью tempdir(). Если указан аргумент parent для каталога, временный путь будет находиться в этом каталоге.
Опция cleanup управляет тем, пытается ли процесс автоматически удалить возвращаемый путь при выходе из процесса. Обратите внимание, что функция tempname не создает никаких файлов или каталогов в возвращаемом местоположении, поэтому нечего очищать, если вы не создадите файл или каталог там. Если вы это сделаете и cleanup равно true, он будет удален при завершении процесса.
Аргументы parent и cleanup были добавлены в версии 1.4. До Julia 1.4 путь, возвращаемый tempname, никогда не очищался при завершении процесса.
Это может привести к уязвимостям в безопасности, если другой процесс получит то же имя файла и создаст файл до того, как вы сможете это сделать. Откройте файл с помощью JL_O_EXCL, если это вызывает беспокойство. Также рекомендуется использовать mktemp() вместо этого.
Base.Filesystem.tempdir — Functiontempdir()Получает путь к временной директории. В Windows tempdir() использует первую найденную переменную окружения из упорядоченного списка TMP, TEMP, USERPROFILE. На всех других операционных системах tempdir() использует первую найденную переменную окружения из упорядоченного списка TMPDIR, TMP, TEMP и TEMPDIR. Если ни одна из этих переменных не найдена, используется путь "/tmp".
Base.Filesystem.mktemp — Methodmktemp(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 — Methodmktemp(f::Function, parent=tempdir())Примените функцию f к результату mktemp(parent) и удалите временный файл по завершении.
Смотрите также: mktempdir.
Base.Filesystem.mktempdir — Methodmktempdir(parent=tempdir(); prefix="jl_", cleanup=true) -> pathСоздайте временный каталог в каталоге parent с именем, составленным из данного prefix и случайного суффикса, и верните его путь. Кроме того, на некоторых платформах любые завершающие символы 'X' в prefix могут быть заменены случайными символами. Если parent не существует, выбросьте ошибку. Опция cleanup управляет тем, будет ли временный каталог автоматически удален при выходе процесса.
Аргумент ключевого слова prefix был добавлен в Julia 1.2.
Аргумент ключевого слова cleanup был добавлен в Julia 1.3. Связано с тем, что начиная с 1.3, Julia будет удалять временные пути, созданные с помощью mktempdir, при выходе процесса Julia, если cleanup явно не установлен в false.
Base.Filesystem.mktempdir — Methodmktempdir(f::Function, parent=tempdir(); prefix="jl_")Примените функцию f к результату mktempdir(parent; prefix) и удалите временный каталог и все его содержимое по завершении.
Смотрите также: mktemp, mkdir.
Аргумент ключевого слова prefix был добавлен в Julia 1.2.
Base.Filesystem.isblockdev — Functionisblockdev(path) -> BoolВозвращает true, если path является блочным устройством, в противном случае false.
Base.Filesystem.ischardev — Functionischardev(path) -> BoolВозвращает true, если path является символьным устройством, в противном случае возвращает false.
Base.Filesystem.isdir — Functionisdir(path) -> BoolВозвращает true, если path является директорией, в противном случае false.
Примеры
julia> isdir(homedir())
true
julia> isdir("not/a/directory")
falseBase.Filesystem.isfifo — Functionisfifo(path) -> BoolВозвращает true, если path является FIFO, в противном случае false.
Base.Filesystem.isfile — Functionisfile(path) -> BoolВозвращает true, если path является обычным файлом, в противном случае false.
Примеры
julia> isfile(homedir())
false
julia> filename = "test_file.txt";
julia> write(filename, "Hello world!");
julia> isfile(filename)
true
julia> rm(filename);
julia> isfile(filename)
falseBase.Filesystem.islink — Functionislink(path) -> BoolВозвращает true, если path является символической ссылкой, в противном случае false.
Base.Filesystem.ismount — Functionismount(path) -> BoolВозвращает true, если path является точкой монтирования, в противном случае false.
Base.Filesystem.ispath — Functionispath(path) -> BoolВозвращает true, если в path существует действительный элемент файловой системы, в противном случае возвращает false. Это обобщение isfile, isdir и т.д.
Base.Filesystem.issetgid — Functionissetgid(path) -> BoolВозвращает true, если у path установлен флаг setgid, в противном случае false.
Base.Filesystem.issetuid — Functionissetuid(path) -> BoolВозвращает true, если у path установлен флаг setuid, в противном случае false.
Base.Filesystem.issocket — Functionissocket(path) -> BoolВозвращает true, если path является сокетом, в противном случае false.
Base.Filesystem.issticky — Functionissticky(path) -> BoolВозвращает true, если у path установлен бит "липкости", в противном случае возвращает false.
Base.Filesystem.homedir — Functionhomedir() -> StringВозвращает домашний каталог текущего пользователя.
homedir определяет домашний каталог с помощью libuv's uv_os_homedir. Для получения подробной информации (например, о том, как указать домашний каталог через переменные окружения), смотрите в документацию uv_os_homedir.
Смотрите также Sys.username.
Base.Filesystem.dirname — Functiondirname(path::AbstractString) -> StringПолучить часть каталога пути. Конечные символы ('/' или '\') в пути учитываются как часть пути.
Примеры
julia> dirname("/home/myuser")
"/home"
julia> dirname("/home/myuser/")
"/home/myuser"Смотрите также basename.
Base.Filesystem.basename — Functionbasename(path::AbstractString) -> StringПолучить имя файла из пути.
Эта функция немного отличается от программы Unix basename, где конечные слэши игнорируются, т.е. $ basename /foo/bar/ возвращает bar, в то время как basename в Julia возвращает пустую строку "".
Примеры
julia> basename("/home/myuser/example.jl")
"example.jl"
julia> basename("/home/myuser/")
""Смотрите также dirname.
Base.Filesystem.isabspath — Functionisabspath(path::AbstractString) -> BoolОпределяет, является ли путь абсолютным (начинается с корневого каталога).
Примеры
julia> isabspath("/home")
true
julia> isabspath("home")
falseBase.Filesystem.isdirpath — Functionisdirpath(path::AbstractString) -> BoolОпределяет, ссылается ли путь на каталог (например, заканчивается ли он разделителем пути).
Примеры
julia> isdirpath("/home")
false
julia> isdirpath("/home/")
trueBase.Filesystem.joinpath — Functionjoinpath(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 — Functionabspath(path::AbstractString) -> StringПреобразует путь в абсолютный путь, добавляя текущую директорию, если это необходимо. Также нормализует путь, как в normpath.
Примеры
Если вы находитесь в директории под названием JuliaExample, и данные, которые вы используете, находятся на два уровня выше относительно директории JuliaExample, вы можете написать:
abspath("../../data")Что даст путь, например, "/home/JuliaUser/data/".
Смотрите также joinpath, pwd, expanduser.
abspath(path::AbstractString, paths::AbstractString...) -> StringПреобразует набор путей в абсолютный путь, объединяя их и добавляя текущую директорию, если это необходимо. Эквивалентно abspath(joinpath(path, paths...)).
Base.Filesystem.normpath — Functionnormpath(path::AbstractString) -> StringНормализует путь, удаляя записи "." и ".." и изменяя "/" на канонический разделитель пути для системы.
Примеры
julia> normpath("/home/myuser/../example.jl")
"/home/example.jl"
julia> normpath("Documents/Julia") == joinpath("Documents", "Julia")
truenormpath(path::AbstractString, paths::AbstractString...) -> StringПреобразует набор путей в нормализованный путь, объединяя их и удаляя записи "." и "..". Эквивалентно normpath(joinpath(path, paths...)).
Base.Filesystem.realpath — Functionrealpath(path::AbstractString) -> StringКанонизирует путь, расширяя символические ссылки и удаляя записи "." и "..". На файловых системах с нечувствительным к регистру и сохраняющим регистр (обычно Mac и Windows) возвращается сохраненный регистр для пути.
(Эта функция вызывает исключение, если path не существует в файловой системе.)
Base.Filesystem.relpath — Functionrelpath(path::AbstractString, startpath::AbstractString = ".") -> StringВозвращает относительный путь к path либо из текущего каталога, либо из необязательного начального каталога. Это вычисление пути: файловая система не используется для подтверждения существования или природы path или startpath.
В Windows чувствительность к регистру применяется ко всем частям пути, кроме букв дисков. Если path и startpath относятся к разным дискам, возвращается абсолютный путь к path.
Base.Filesystem.expanduser — Functionexpanduser(path::AbstractString) -> AbstractStringНа системах Unix заменяет символ тильды в начале пути на домашний каталог текущего пользователя.
Смотрите также: contractuser.
Base.Filesystem.contractuser — Functioncontractuser(path::AbstractString) -> AbstractStringНа системах Unix, если путь начинается с homedir(), замените его на символ тильды.
Смотрите также: expanduser.
Base.Filesystem.samefile — Functionsamefile(path_a::AbstractString, path_b::AbstractString)Проверьте, ссылаются ли пути path_a и path_b на один и тот же существующий файл или каталог.
Base.Filesystem.splitdir — Functionsplitdir(path::AbstractString) -> (AbstractString, AbstractString)Разделите путь на кортеж из имени директории и имени файла.
Примеры
julia> splitdir("/home/myuser")
("/home", "myuser")Base.Filesystem.splitdrive — Functionsplitdrive(path::AbstractString) -> (AbstractString, AbstractString)На Windows разделяет путь на часть с буквой диска и часть с путем. В системах Unix первый компонент всегда является пустой строкой.
Base.Filesystem.splitext — Functionsplitext(path::AbstractString) -> (String, String)Если последний компонент пути содержит одну или несколько точек, разделите путь на все, что перед последней точкой, и все, включая и после точки. В противном случае верните кортеж аргумента без изменений и пустую строку. "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 — Functionsplitpath(path::AbstractString) -> Vector{String}Разделяет путь к файлу на все его компоненты. Это противоположно joinpath. Возвращает массив подстрок, по одной для каждого каталога или файла в пути, включая корневой каталог, если он присутствует.
Эта функция требует как минимум Julia 1.1.
Примеры
julia> splitpath("/home/myuser/example.jl")
4-element Vector{String}:
"/"
"home"
"myuser"
"example.jl"