Файловая система
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())
Установить текущую рабочую директорию.
Примеры
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 сортирует список возвращаемых имён. Если вы хотите пропустить сортировку имён и получить их в порядке, в котором их перечисляет файловая система, вы можете использовать readir(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 встречает SystemError, оно по умолчанию перебрасывает исключение. Обработчик ошибок можно указать с помощью ключевого аргумента onerror. onerror вызывается с SystemError в качестве аргумента.
Примеры
for (root, dirs, files) in walkdir(".")
println("Directories in $root")
for dir in dirs
println(joinpath(root, dir)) # path to directories
end
println("Files in $root")
for file in files
println(joinpath(root, file)) # path to files
end
end
julia> mkpath("my/test/dir");
julia> itr = walkdir("my");
julia> (root, dirs, files) = first(itr)
("my", ["test"], String[])
julia> (root, dirs, files) = first(itr)
("my/test", ["dir"], String[])
julia> (root, dirs, files) = first(itr)
("my/test/dir", String[], String[])
исходный код
Base.Filesystem.mkdirФункция
mkdir(path::AbstractString; mode::Unsigned = 0o777)
Создаёт новую директорию с именем path и разрешениями mode. mode по умолчанию равно 0o777, модифицированному текущей маской создания файлов. Эта функция никогда не создаёт более одной директории. Если директория уже существует, или некоторые промежуточные директории не существуют, эта функция генерирует ошибку. См. mkpath для функции, которая создаёт все необходимые промежуточные директории. Возвращает path.
Примеры
julia> mkdir("testingdir")
"testingdir"
julia> cd("testingdir")
julia> pwd()
"/home/JuliaUser/testingdir"
исходный код
Base.Filesystem.mkpathФункция
mkpath(path::AbstractString; mode::Unsigned = 0o777)
Создаёт все директории в данном path, с разрешениями mode. mode по умолчанию равно 0o777, модифицированному текущей маской создания файлов. Возвращает path.
Примеры
julia> mkdir("testingdir")
"testingdir"
julia> cd("testingdir")
julia> pwd()
"/home/JuliaUser/testingdir"
julia> mkpath("my/test/dir")
"my/test/dir"
julia> readdir()
1-element Array{String,1}:
"my"
julia> cd("my")
julia> readdir()
1-element Array{String,1}:
"test"
julia> readdir("test")
1-element Array{String,1}:
"dir"
исходный код
Base.Filesystem.symlinkФункция
symlink(target::AbstractString, link::AbstractString)
Создаёт символическую ссылку на target с именем link.
Эта функция вызывает ошибку в операционных системах, которые не поддерживают мягкие символические ссылки, таких как Windows XP.
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.
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)
Возвращает структуру, поля которой содержат информацию о файле. Поля структуры:
| Имя | Описание |
|---|---|
| size | Размер (в байтах) файла |
| device | Идентификатор устройства, содержащего файл |
| inode | Номер узла файла |
| mode | Режим защиты файла |
| nlink | Количество жёстких ссылок на файл |
| uid | Идентификатор пользователя владельца файла |
| gid | Идентификатор группы владельца файла |
| rdev | Если этот файл относится к устройству, идентификатор устройства, к которому он относится |
| blksize | Предпочитаемый файловой системой размер блока для файла |
| blocks | Количество выделенных таких блоков |
| mtime | Маркер времени Unix, когда файл был последний раз изменён |
| ctime | Маркер времени Unix, когда файл был создан |
Base.Filesystem.lstatФункция
lstat(file)
Аналогично stat, но для символических ссылок получает информацию о самой ссылке, а не о файле, на который она ссылается. Эту функцию необходимо вызывать по пути к файлу, а не по объекту файла или дескриптору файла.
Base.Filesystem.ctimeФункция
ctime(file)
Эквивалентно stat(file).ctime.
Base.Filesystem.mtimeФункция
mtime(file)
Эквивалентно stat(file).mtime.
Base.Filesystem.filemodeФункция
filemode(file)
Эквивалентно stat(file).mode.
Base.Filesystem.filesizeФункция
filesize(path...)
Эквивалентно stat(file).size.
Base.Filesystem.upermФункция
uperm(file)
Получить разрешения владельца файла в виде битового поля:
| Значение | Описание |
|---|---|
| 01 | Разрешение на выполнение |
| 02 | Разрешение на запись |
| 04 | Разрешение на чтение |
Для разрешенных аргументов, см. stat.
Base.Filesystem.gpermФункция
gperm(file)
Аналогично uperm, но получает разрешения группы, владеющей файлом.
Base.Filesystem.opermФункция
operm(file)
Аналогично uperm, но получает разрешения для пользователей, которые не являются владельцами файла и не являются членами группы, владеющей файлом.
Base.Filesystem.cpФункция
cp(src::AbstractString, dst::AbstractString; force::Bool=false, follow_symlinks::Bool=false)
Копирует файл, ссылку или директорию из src в dst. force=true предварительно удалит существующий dst.
Если follow_symlinks=false, и src является символической ссылкой, dst будет создан как символическая ссылка. Если follow_symlinks=true и src является символической ссылкой, dst будет копией файла или директории, на которую ссылается src . Возвращает dst.
Base.downloadФункция
download(url::AbstractString, [localfile::AbstractString])
Загружает файл с указанного URL, необязательно переименовывая его на указанное имя локального файла. Если имя файла не указано, файл будет загружен в случайное имя файла в временной директории. Обратите внимание, что эта функция полагается на доступность внешних инструментов, таких как curl, wget или fetch, для загрузки файла и предоставляется для удобства. Для использования в производстве или в ситуациях, когда требуется больше опций, пожалуйста, используйте пакет, который предоставляет желаемую функциональность вместо этого.
Возвращает имя файла загруженного файла.
исходный код
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: 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 управляет тем, удаляется ли временный файл автоматически при завершении процесса.
Base.Filesystem.mktempМетод
mktemp(f::Function, parent=tempdir())
Применяет функцию f к результату mktemp(parent) и удаляет временный файл по завершении.
Base.Filesystem.mktempdirМетод
mktempdir(parent=tempdir(); prefix="jl_", cleanup=true) -> path
Создаёт временную директорию в директории parent с именем, составленным из заданного префикса и случайного суффикса, и возвращает её путь. Кроме того, все заключительные X символы могут быть заменены случайными символами. Если parent не существует, генерируется ошибка. Опция cleanup управляет тем, удаляется ли временная директория и всё её содержимое при завершении процесса.
Base.Filesystem.mktempdirМетод
mktempdir(f::Function, parent=tempdir(); prefix="jl_")
Применяет функцию f к результату mktempdir(parent; prefix) и удаляет временную директорию и всё её содержимое по завершении.
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
Возвращает часть пути, относящуюся к имени файла.
Примеры
julia> basename("/home/myuser/example.jl")
"example.jl"
См. также: dirname
Base.@__FILE__Макрос
@__FILE__ -> AbstractString
Расширяется до строки с путем к файлу, содержащему вызов макроса, или до пустой строки, если вычисление выполняется julia -e <expr>. Возвращает nothing если в макросе отсутствует информация о источнике парсера. В альтернативном случае, см. PROGRAM_FILE.
Base.@__DIR__Макрос
@__DIR__ -> AbstractString
Расширяется до строки с абсолютным путем к каталогу файла, содержащего вызов макроса. Возвращает текущую рабочую директорию, если запуск осуществляется из REPL или вычисляется julia -e <expr>.
Base.@__LINE__Макрос
@__LINE__ -> Int
Расширяется до номера строки расположения вызова макроса. Возвращает 0 если номер строки определить не удалось.
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
Объединяет компоненты пути в полный путь. Если какой-либо аргумент является абсолютным путем или (в 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"
исходный код
Base.Filesystem.abspathФункция
abspath(path::AbstractString) -> String
Преобразует путь в абсолютный путь, добавив текущую директорию при необходимости. Также нормализует путь, как в normpath.
abspath(path::AbstractString, paths::AbstractString...) -> String
Преобразуйте набор путей в абсолютный путь, объединив их вместе и добавив текущую директорию, если необходимо. Эквивалентно abspath(joinpath(path, paths...)).
Base.Filesystem.normpathФункция
normpath(path::AbstractString) -> String
Нормализуйте путь, удалив записи "." и "..".
Примеры
julia> normpath("/home/myuser/../example.jl")
"/home/example.jl"
исходный кодnormpath(path::AbstractString, paths::AbstractString...) -> String
Преобразуйте набор путей в нормализованный путь, объединив их вместе и удалив записи "." и "..". Эквивалентно normpath(joinpath(path, paths...)).
Base.Filesystem.realpathФункция
realpath(path::AbstractString) -> String
Канонизируйте путь, расширив символические ссылки и удалив записи "." и "..". В случае систем с регистронезависимым, но сохраняющим регистр файловой системой (обычно Mac и Windows), возвращается хранимый файловой системой регистр пути.
(Эта функция выбрасывает исключение, если path не существует в файловой системе.)
Base.Filesystem.relpathФункция
relpath(path::AbstractString, startpath::AbstractString = ".") -> AbstractString
Возвращает относительный путь к path либо из текущей директории, либо из необязательной стартовой директории. Это вычисление пути: файловая система не используется для подтверждения существования или свойств path или startpath.
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)
Если последняя часть пути содержит точку, разделить путь на всё перед точкой и всё, включая и после точки. В противном случае вернуть кортеж аргумента без изменений и пустой строки.
Примеры
julia> splitext("/home/myuser/example.jl")
("/home/myuser/example", ".jl")
julia> splitext("/home/myuser/example")
("/home/myuser/example", "")
исходный код
Base.Filesystem.splitpathФункция
splitpath(path::AbstractString) -> Vector{String}
Разделить путь к файлу на все его составляющие пути. Это противоположно joinpath. Возвращает массив подстрок, по одной для каждой директории или файла в пути, включая корневую директорию, если она присутствует.
Для работы этой функции требуется как минимум Julia 1.1.
Примеры
julia> splitpath("/home/myuser/example.jl")
4-element Array{String,1}:
"/"
"home"
"myuser"
"example.jl"
исходный код
© 2009–2020 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.4.2/base/file/