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
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
— 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")
false
Base.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)
false
Base.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")
false
Base.Filesystem.isdirpath
— Functionisdirpath(path::AbstractString) -> Bool
Определяет, ссылается ли путь на каталог (например, заканчивается ли он разделителем пути).
Примеры
julia> isdirpath("/home")
false
julia> isdirpath("/home/")
true
Base.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")
true
normpath(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"