Filesystem

Base.readMethod
read(filename::AbstractString)

Читает все содержимое файла как Vector{UInt8}.

read(filename::AbstractString, String)

Читает все содержимое файла как строку.

read(filename::AbstractString, args...)

Открывает файл и читает его содержимое. args передается в read: это эквивалентно open(io->read(io, args...), filename).

source
Base.writeMethod
write(filename::AbstractString, content)

Запишите каноническое двоичное представление content в файл, который будет создан, если он еще не существует, или перезаписан, если он существует.

Возвращает количество байт, записанных в файл.

source
Base.Filesystem.pwdFunction
pwd() -> String

Получить текущий рабочий каталог.

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

Примеры

julia> pwd()
"/home/JuliaUser"

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

julia> pwd()
"/home/JuliaUser/Projects/julia"
source
Base.Filesystem.cdMethod
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"
source
Base.Filesystem.cdMethod
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"
source
Base.Filesystem.readdirFunction
readdir(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.

Julia 1.4

Аргументы ключевых слов 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"
source
Base.Filesystem.walkdirFunction
walkdir(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
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[])
source
Base.Filesystem.mkdirFunction
mkdir(path::AbstractString; mode::Unsigned = 0o777)

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

Примеры

julia> mkdir("testingdir")
"testingdir"

julia> cd("testingdir")

julia> pwd()
"/home/JuliaUser/testingdir"
source
Base.Filesystem.mkpathFunction
mkpath(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
source
Base.Filesystem.hardlinkFunction
hardlink(src::AbstractString, dst::AbstractString)

Создает жесткую ссылку на существующий исходный файл src с именем dst. Назначение, dst, не должно существовать.

См. также: symlink.

Julia 1.8

Этот метод был добавлен в Julia 1.8.

source
Base.Filesystem.symlinkFunction
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 является создание их только после того, как файлы/каталоги, на которые они ссылаются, уже созданы.

См. также: hardlink.

Note

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

Julia 1.6

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

source
Base.Filesystem.readlinkFunction
readlink(path::AbstractString) -> String

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

source
Base.Filesystem.chmodFunction
chmod(path::AbstractString, mode::Integer; recursive::Bool=false)

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

Note

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

source
Base.Filesystem.chownFunction
chown(path::AbstractString, owner::Integer, group::Integer=-1)

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

source
Base.Libc.RawFDType
RawFD

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

source
Base.statFunction
stat(file)

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

ИмяТипОписание
descUnion{String, Base.OS_HANDLE}Путь или дескриптор файла ОС
sizeInt64Размер (в байтах) файла
deviceUIntID устройства, на котором находится файл
inodeUIntНомер inode файла
modeUIntРежим защиты файла
nlinkIntКоличество жестких ссылок на файл
uidUIntИдентификатор пользователя владельца файла
gidUIntИдентификатор группы владельца файла
rdevUIntЕсли этот файл относится к устройству, ID устройства, к которому он относится
blksizeInt64Предпочитаемый размер блока файловой системы для файла
blocksInt64Количество выделенных блоков по 512 байт
mtimeFloat64Unix временная метка последнего изменения файла
ctimeFloat64Unix временная метка, когда метаданные файла были изменены
source
Base.Filesystem.diskstatFunction
diskstat(path=pwd())

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

Julia 1.8

Этот метод был добавлен в Julia 1.8.

source
Base.Filesystem.lstatFunction
lstat(file)

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

source
Base.Filesystem.upermFunction
uperm(file)

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

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

Для допустимых аргументов смотрите stat.

source
Base.Filesystem.opermFunction
operm(file)

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

source
Base.Filesystem.cpFunction
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.

Note

Функция cp отличается от команды cp. Функция cp всегда работает с предположением, что dst является файлом, в то время как команда выполняет разные действия в зависимости от того, является ли dst каталогом или файлом. Использование force=true, когда dst является каталогом, приведет к потере всех содержимого, находящегося в каталоге dst, и dst станет файлом, содержащим содержимое src вместо этого.

source
Base.downloadFunction
download(url::AbstractString, [path::AbstractString = tempname()]) -> path

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

Note

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

source
Base.Filesystem.mvFunction
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' существует. Для удаления '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");
source
Base.Filesystem.rmFunction
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:
[...]
source
Base.Filesystem.touchFunction
Base.touch(::Pidfile.LockMonitor)

Обновите mtime на блокировке, чтобы указать, что она все еще актуальна.

Смотрите также ключевое слово refresh в конструкторе mkpidlock.

source
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.

source
Base.Filesystem.tempnameFunction
tempname(parent=tempdir(); cleanup=true) -> String

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

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

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

Julia 1.4

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

Warning

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

source
Base.Filesystem.tempdirFunction
tempdir()

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

source
Base.Filesystem.mktempMethod
mktemp(parent=tempdir(); cleanup=true) -> (path, io)

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

Julia 1.3

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

source
Base.Filesystem.mktempMethod
mktemp(f::Function, parent=tempdir())

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

Смотрите также: mktempdir.

source
Base.Filesystem.mktempdirMethod
mktempdir(parent=tempdir(); prefix="jl_", cleanup=true) -> path

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

Julia 1.2

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

Julia 1.3

Аргумент ключевого слова cleanup был добавлен в Julia 1.3. Связано с тем, что начиная с 1.3, Julia будет удалять временные пути, созданные с помощью mktempdir, при выходе процесса Julia, если cleanup явно не установлен в false.

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

source
Base.Filesystem.mktempdirMethod
mktempdir(f::Function, parent=tempdir(); prefix="jl_")

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

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

Julia 1.2

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

source
Base.Filesystem.isblockdevFunction
isblockdev(path) -> Bool

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

source
Base.Filesystem.ischardevFunction
ischardev(path) -> Bool

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

source
Base.Filesystem.isdirFunction
isdir(path) -> Bool

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

Примеры

julia> isdir(homedir())
true

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

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

source
Base.Filesystem.isfifoFunction
isfifo(path) -> Bool

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

source
Base.Filesystem.isfileFunction
isfile(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)
false

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

source
Base.Filesystem.islinkFunction
islink(path) -> Bool

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

source
Base.Filesystem.ismountFunction
ismount(path) -> Bool

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

source
Base.Filesystem.ispathFunction
ispath(path) -> Bool

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

source
Base.Filesystem.issetgidFunction
issetgid(path) -> Bool

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

source
Base.Filesystem.issetuidFunction
issetuid(path) -> Bool

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

source
Base.Filesystem.issocketFunction
issocket(path) -> Bool

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

source
Base.Filesystem.isstickyFunction
issticky(path) -> Bool

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

source
Base.Filesystem.homedirFunction
homedir() -> String

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

Note

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

Смотрите также Sys.username.

source
Base.Filesystem.dirnameFunction
dirname(path::AbstractString) -> String

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

Примеры

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

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

Смотрите также basename.

source
Base.Filesystem.basenameFunction
basename(path::AbstractString) -> String

Получить имя файла из пути.

Note

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

Примеры

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

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

Смотрите также dirname.

source
Base.Filesystem.isabspathFunction
isabspath(path::AbstractString) -> Bool

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

Примеры

julia> isabspath("/home")
true

julia> isabspath("home")
false
source
Base.Filesystem.isdirpathFunction
isdirpath(path::AbstractString) -> Bool

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

Примеры

julia> isdirpath("/home")
false

julia> isdirpath("/home/")
true
source
Base.Filesystem.joinpathFunction
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"
source
Base.Filesystem.abspathFunction
abspath(path::AbstractString) -> String

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

Примеры

Если вы находитесь в директории под названием JuliaExample, и данные, которые вы используете, находятся на два уровня выше относительно директории JuliaExample, вы можете написать:

abspath("../../data")

Что даст путь, например, "/home/JuliaUser/data/".

Смотрите также joinpath, pwd, expanduser.

source
abspath(path::AbstractString, paths::AbstractString...) -> String

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

source
Base.Filesystem.normpathFunction
normpath(path::AbstractString) -> String

Нормализует путь, удаляя записи "." и ".." и изменяя "/" на канонический разделитель пути для системы.

Примеры

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

julia> normpath("Documents/Julia") == joinpath("Documents", "Julia")
true
source
normpath(path::AbstractString, paths::AbstractString...) -> String

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

source
Base.Filesystem.realpathFunction
realpath(path::AbstractString) -> String

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

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

source
Base.Filesystem.relpathFunction
relpath(path::AbstractString, startpath::AbstractString = ".") -> String

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

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

source
Base.Filesystem.expanduserFunction
expanduser(path::AbstractString) -> AbstractString

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

Смотрите также: contractuser.

source
Base.Filesystem.contractuserFunction
contractuser(path::AbstractString) -> AbstractString

На системах Unix, если путь начинается с homedir(), замените его на символ тильды.

Смотрите также: expanduser.

source
Base.Filesystem.samefileFunction
samefile(path_a::AbstractString, path_b::AbstractString)

Проверьте, ссылаются ли пути path_a и path_b на один и тот же существующий файл или каталог.

source
Base.Filesystem.splitdirFunction
splitdir(path::AbstractString) -> (AbstractString, AbstractString)

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

Примеры

julia> splitdir("/home/myuser")
("/home", "myuser")
source
Base.Filesystem.splitdriveFunction
splitdrive(path::AbstractString) -> (AbstractString, AbstractString)

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

source
Base.Filesystem.splitextFunction
splitext(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", "")
source
Base.Filesystem.splitpathFunction
splitpath(path::AbstractString) -> Vector{String}

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

Julia 1.1

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

Примеры

julia> splitpath("/home/myuser/example.jl")
4-element Vector{String}:
 "/"
 "home"
 "myuser"
 "example.jl"
source