Файловая система
Base.Filesystem.pwdФункция
pwd() -> AbstractString
Получить текущую рабочую директорию.
Примеры
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 равно false, readdir возвращает только имена файлов в директории как есть; когда join равно true, она возвращает 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 встречает ошибку, она перевыбрасывает её по умолчанию. Обработка ошибок может быть настраиваемой через ключевой аргумент 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, которые по умолчанию равны 0o777 и модифицируются текущей маской создания файлов. В отличие от mkdir, mkpath не вызывает ошибку, если path (или её части) уже существуют. Однако, ошибка будет выброшена, если path (или её части) указывает на существующий файл. Возвращает path.
Если path включает имя файла, вы, вероятно, захотите использовать mkpath(dirname(path)) чтобы избежать создания директории с использованием имени файла.
Примеры
julia> cd(mktempdir())
julia> mkpath("my/test/dir") # creates three directories
"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") # creates two directories
"intermediate_dir/actually_a_directory.txt"
julia> isdir("intermediate_dir/actually_a_directory.txt")
true
исходный код
Base.Filesystem.hardlinkФункция
hardlink(src::AbstractString, dst::AbstractString)
Создаёт жёсткую ссылку на существующий исходный файл src с именем dst. Путь назначения, dst, не должен существовать.
См. также: symlink.
Этот метод был добавлен в Julia 1.8.
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 является создание их только после того, как файлы/директории, на которые они ссылаются, уже созданы.
См. также: hardlink.
Эта функция вызывает ошибку в операционных системах, не поддерживающих мягкие символические ссылки, таких как 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 эта функция некорректно обрабатывала разрешения доступа на файловой системе в Windows, поэтому она устанавливала только биты чтения/записи. Сейчас она может обрабатывать разрешения доступа.
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.diskstatФункция
diskstat(path=pwd())
Возвращает статистику в байтах о диске, содержащем файл или директорию, на которые указывает path. Если аргумент не указан, возвращает статистику о диске, содержащем текущий рабочий каталог.
Этот метод был добавлен в Julia 1.8.
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.
Функция cp отличается от команды cp. Функция cp всегда предполагает, что dst является файлом, в то время как команда делает разные вещи в зависимости от того, является ли dst директорией или файлом. Использование force=true при dst как директории приведёт к потере всех содержимых директории dst, и dst станет файлом, содержащим содержимое src.
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.
Base.Filesystem.mktempdirМетод
mktempdir(f::Function, parent=tempdir(); prefix="jl_")
Применяет функцию f к результату mktempdir(parent; prefix) и удаляет временный каталог и всё его содержимое по завершении.
Ключевой аргумент 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
исходный код
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")
исходный код
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's 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"
julia> normpath("Documents/Julia") == joinpath("Documents", "Julia")
true
исходный код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–2022 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.8/base/file/