Filesystem
Base.read
— Methodread(filename::AbstractString)
Lee todo el contenido de un archivo como un Vector{UInt8}
.
read(filename::AbstractString, String)
Lee todo el contenido de un archivo como una cadena.
read(filename::AbstractString, args...)
Abre un archivo y lee su contenido. args
se pasa a read
: esto es equivalente a open(io->read(io, args...), filename)
.
Base.write
— Methodwrite(filename::AbstractString, content)
Escribe la representación binaria canónica de content
en un archivo, que se creará si aún no existe o se sobrescribirá si ya existe.
Devuelve el número de bytes escritos en el archivo.
Base.Filesystem.pwd
— Functionpwd() -> String
Obtiene el directorio de trabajo actual.
Ejemplos
julia> pwd()
"/home/JuliaUser"
julia> cd("/home/JuliaUser/Projects/julia")
julia> pwd()
"/home/JuliaUser/Projects/julia"
Base.Filesystem.cd
— Methodcd(dir::AbstractString=homedir())
Establece el directorio de trabajo actual.
Véase también: pwd
, mkdir
, mkpath
, mktempdir
.
Ejemplos
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())
Cambia temporalmente el directorio de trabajo actual a dir
, aplica la función f
y finalmente regresa al directorio original.
Ejemplos
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}
Devuelve los nombres en el directorio dir
o el directorio de trabajo actual si no se proporciona. Cuando join
es falso, readdir
devuelve solo los nombres en el directorio tal como están; cuando join
es verdadero, devuelve joinpath(dir, name)
para cada name
de modo que las cadenas devueltas sean rutas completas. Si deseas obtener rutas absolutas, llama a readdir
con una ruta de directorio absoluta y join
configurado en verdadero.
Por defecto, readdir
ordena la lista de nombres que devuelve. Si deseas omitir el ordenamiento de los nombres y obtenerlos en el orden en que el sistema de archivos los lista, puedes usar readdir(dir, sort=false)
para optar por no ordenar.
Ver también: walkdir
.
Los argumentos de palabra clave join
y sort
requieren al menos Julia 1.4.
Ejemplos
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)
Devuelve un iterador que recorre el árbol de directorios de un directorio. El iterador devuelve una tupla que contiene (rootpath, dirs, files)
. El árbol de directorios se puede recorrer de arriba hacia abajo o de abajo hacia arriba. Si walkdir
o stat
encuentra un IOError
, volverá a lanzar el error por defecto. Se puede proporcionar una función de manejo de errores personalizada a través del argumento clave onerror
. onerror
se llama con un IOError
como argumento.
Véase también: readdir
.
Ejemplos
for (root, dirs, files) in walkdir(".")
println("Directorios en $root")
for dir in dirs
println(joinpath(root, dir)) # ruta a directorios
end
println("Archivos en $root")
for file in files
println(joinpath(root, file)) # ruta a archivos
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)
Crea un nuevo directorio con el nombre path
y permisos mode
. mode
tiene como valor predeterminado 0o777
, modificado por la máscara de creación de archivos actual. Esta función nunca crea más de un directorio. Si el directorio ya existe, o si algunos directorios intermedios no existen, esta función lanza un error. Consulta mkpath
para una función que crea todos los directorios intermedios requeridos. Devuelve path
.
Ejemplos
julia> mkdir("testingdir")
"testingdir"
julia> cd("testingdir")
julia> pwd()
"/home/JuliaUser/testingdir"
Base.Filesystem.mkpath
— Functionmkpath(path::AbstractString; mode::Unsigned = 0o777)
Crea todos los directorios intermedios en el path
según sea necesario. Los directorios se crean con los permisos mode
, que por defecto es 0o777
y se modifica por la máscara de creación de archivos actual. A diferencia de mkdir
, mkpath
no genera un error si path
(o partes de él) ya existe. Sin embargo, se lanzará un error si path
(o partes de él) apunta a un archivo existente. Devuelve path
.
Si path
incluye un nombre de archivo, probablemente querrás usar mkpath(dirname(path))
para evitar crear un directorio usando el nombre del archivo.
Ejemplos
julia> cd(mktempdir())
julia> mkpath("my/test/dir") # crea tres directorios
"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") # crea dos directorios
"intermediate_dir/actually_a_directory.txt"
julia> isdir("intermediate_dir/actually_a_directory.txt")
true
Base.Filesystem.hardlink
— Functionhardlink(src::AbstractString, dst::AbstractString)
Crea un enlace duro a un archivo fuente existente src
con el nombre dst
. El destino, dst
, no debe existir.
Ver también: symlink
.
Este método se agregó en Julia 1.8.
Base.Filesystem.symlink
— Functionsymlink(target::AbstractString, link::AbstractString; dir_target = false)
Crea un enlace simbólico a target
con el nombre link
.
En Windows, los enlaces simbólicos deben declararse explícitamente como referentes a un directorio o no. Si target
ya existe, por defecto el tipo de link
se detectará automáticamente; sin embargo, si target
no existe, esta función por defecto crea un enlace simbólico de archivo a menos que dir_target
se establezca en true
. Ten en cuenta que si el usuario establece dir_target
pero target
existe y es un archivo, aún se creará un enlace simbólico de directorio, pero la desreferenciación del enlace simbólico fallará, justo como si el usuario crea un enlace simbólico de archivo (llamando a symlink()
con dir_target
establecido en false
antes de que se cree el directorio) y trata de desreferenciarlo a un directorio.
Además, hay dos métodos para hacer un enlace en Windows; enlaces simbólicos y puntos de unión. Los puntos de unión son ligeramente más eficientes, pero no admiten rutas relativas, por lo que si se solicita un enlace simbólico de directorio relativo (como lo indica isabspath(target)
devolviendo false
), se utilizará un enlace simbólico, de lo contrario, se utilizará un punto de unión. La mejor práctica para crear enlaces simbólicos en Windows es crearlos solo después de que los archivos/directorios a los que hacen referencia ya estén creados.
Ver también: hardlink
.
Esta función genera un error en sistemas operativos que no admiten enlaces simbólicos suaves, como Windows XP.
El argumento de palabra clave dir_target
se agregó en Julia 1.6. Antes de esto, los enlaces simbólicos a rutas inexistentes en Windows siempre serían enlaces simbólicos de archivo, y los enlaces simbólicos relativos a directorios no eran compatibles.
Base.Filesystem.readlink
— Functionreadlink(path::AbstractString) -> String
Devuelve la ubicación del objetivo a la que apunta un enlace simbólico path
.
Base.Filesystem.chmod
— Functionchmod(path::AbstractString, mode::Integer; recursive::Bool=false)
Cambia el modo de permisos de path
a mode
. Actualmente, solo se admiten modos mode
enteros (por ejemplo, 0o777
). Si recursive=true
y la ruta es un directorio, todos los permisos en ese directorio se cambiarán recursivamente. Devuelve path
.
Antes de Julia 1.6, esto no manipulaba correctamente los ACL del sistema de archivos en Windows, por lo que solo establecía bits de solo lectura en los archivos. Ahora puede manipular los ACL.
Base.Filesystem.chown
— Functionchown(path::AbstractString, owner::Integer, group::Integer=-1)
Cambia el propietario y/o grupo de path
a owner
y/o group
. Si el valor ingresado para owner
o group
es -1
, el ID correspondiente no cambiará. Actualmente, solo se admiten owner
s y group
s enteros. Devuelve path
.
Base.Libc.RawFD
— TypeRawFD
Tipo primitivo que envuelve el descriptor de archivo nativo del sistema operativo. Los RawFD
se pueden pasar a métodos como stat
para descubrir información sobre el archivo subyacente, y también se pueden usar para abrir flujos, con el RawFD
describiendo el archivo del sistema operativo que respalda el flujo.
Base.stat
— Functionstat(file)
Devuelve una estructura cuyos campos contienen información sobre el archivo. Los campos de la estructura son:
Nombre | Tipo | Descripción |
---|---|---|
desc | Union{String, Base.OS_HANDLE} | La ruta o descriptor de archivo del sistema operativo |
size | Int64 | El tamaño (en bytes) del archivo |
device | UInt | ID del dispositivo que contiene el archivo |
inode | UInt | El número de inode del archivo |
mode | UInt | El modo de protección del archivo |
nlink | Int | El número de enlaces duros al archivo |
uid | UInt | El id de usuario del propietario del archivo |
gid | UInt | El id de grupo del propietario del archivo |
rdev | UInt | Si este archivo se refiere a un dispositivo, el ID del dispositivo al que se refiere |
blksize | Int64 | El tamaño de bloque preferido del sistema de archivos para el archivo |
blocks | Int64 | El número de bloques de 512 bytes asignados |
mtime | Float64 | Marca de tiempo Unix de cuándo fue modificado por última vez el archivo |
ctime | Float64 | Marca de tiempo Unix de cuándo se cambió la metadata del archivo |
Base.Filesystem.diskstat
— Functiondiskstat(path=pwd())
Devuelve estadísticas en bytes sobre el disco que contiene el archivo o directorio apuntado por path
. Si no se pasa ningún argumento, se devuelven estadísticas sobre el disco que contiene el directorio de trabajo actual.
Este método se agregó en Julia 1.8.
Base.Filesystem.lstat
— Functionlstat(archivo)
Como stat
, pero para enlaces simbólicos obtiene la información del enlace en sí en lugar del archivo al que se refiere. Esta función debe ser llamada en una ruta de archivo en lugar de un objeto de archivo o un descriptor de archivo.
Base.Filesystem.ctime
— Functionctime(file)
Equivalente a stat(file).ctime
.
Base.Filesystem.mtime
— Functionmtime(file)
Equivalente a stat(file).mtime
.
Base.Filesystem.filemode
— Functionfilemode(file)
Equivalente a stat(file).mode
.
Base.filesize
— Functionfilesize(path...)
Equivalente a stat(file).size
.
Base.Filesystem.uperm
— Functionuperm(file)
Obtiene los permisos del propietario del archivo como un campo de bits de
Valor | Descripción |
---|---|
01 | Permiso de Ejecución |
02 | Permiso de Escritura |
04 | Permiso de Lectura |
Para los argumentos permitidos, consulta stat
.
Base.Filesystem.gperm
— Functiongperm(file)
Como uperm
pero obtiene los permisos del grupo propietario del archivo.
Base.Filesystem.operm
— Functionoperm(file)
Como uperm
pero obtiene los permisos para personas que no son propietarias del archivo ni son miembros del grupo propietario del archivo.
Base.Filesystem.cp
— Functioncp(src::AbstractString, dst::AbstractString; force::Bool=false, follow_symlinks::Bool=false)
Copia el archivo, enlace o directorio de src
a dst
. force=true
eliminará primero un dst
existente.
Si follow_symlinks=false
, y src
es un enlace simbólico, dst
se creará como un enlace simbólico. Si follow_symlinks=true
y src
es un enlace simbólico, dst
será una copia del archivo o directorio al que se refiere src
. Devuelve dst
.
La función cp
es diferente del comando cp
. La función cp
siempre opera bajo la suposición de que dst
es un archivo, mientras que el comando hace cosas diferentes dependiendo de si dst
es un directorio o un archivo. Usar force=true
cuando dst
es un directorio resultará en la pérdida de todo el contenido presente en el directorio dst
, y dst
se convertirá en un archivo que tiene el contenido de src
en su lugar.
Base.download
— Functiondownload(url::AbstractString, [path::AbstractString = tempname()]) -> path
Descarga un archivo de la URL dada, guardándolo en la ubicación path
, o si no se especifica, en una ruta temporal. Devuelve la ruta del archivo descargado.
Desde Julia 1.6, esta función está en desuso y es solo un envoltorio delgado alrededor de Downloads.download
. En el nuevo código, deberías usar esa función directamente en lugar de llamar a esta.
Base.Filesystem.mv
— Functionmv(src::AbstractString, dst::AbstractString; force::Bool=false)
Mueve el archivo, enlace o directorio de src
a dst
. force=true
eliminará primero un dst
existente. Devuelve dst
.
Ejemplos
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' existe. Se requiere `force=true` para eliminar 'goodbye.txt' antes de mover.
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)
Elimina el archivo, enlace o directorio vacío en la ruta dada. Si se pasa force=true
, una ruta no existente no se trata como un error. Si se pasa recursive=true
y la ruta es un directorio, entonces todo el contenido se elimina recursivamente.
Ejemplos
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)
Actualiza el mtime
en el bloqueo, para indicar que sigue siendo reciente.
Consulta también la palabra clave refresh
en el constructor mkpidlock
.
touch(path::AbstractString)
touch(fd::File)
Actualiza la marca de tiempo de la última modificación de un archivo a la hora actual.
Si el archivo no existe, se crea un nuevo archivo.
Devuelve path
.
Ejemplos
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
Podemos ver que mtime
ha sido modificado por touch
.
Base.Filesystem.tempname
— Functiontempname(parent=tempdir(); cleanup=true) -> String
Genera una ruta de archivo temporal. Esta función solo devuelve una ruta; no se crea ningún archivo. La ruta es probable que sea única, pero esto no se puede garantizar debido a la muy remota posibilidad de que dos llamadas simultáneas a tempname
generen el mismo nombre de archivo. El nombre está garantizado para diferir de todos los archivos que ya existen en el momento de la llamada a tempname
.
Cuando se llama sin argumentos, el nombre temporal será una ruta absoluta a un nombre temporal en el directorio temporal del sistema según lo indicado por tempdir()
. Si se proporciona un argumento de directorio parent
, la ruta temporal estará en ese directorio en su lugar.
La opción cleanup
controla si el proceso intenta eliminar la ruta devuelta automáticamente cuando el proceso sale. Tenga en cuenta que la función tempname
no crea ningún archivo o directorio en la ubicación devuelta, por lo que no hay nada que limpiar a menos que cree un archivo o directorio allí. Si lo hace y cleanup
es true
, se eliminará al finalizar el proceso.
Los argumentos parent
y cleanup
se añadieron en 1.4. Antes de Julia 1.4, la ruta tempname
nunca se limpiaría al finalizar el proceso.
Esto puede llevar a agujeros de seguridad si otro proceso obtiene el mismo nombre de archivo y crea el archivo antes de que usted pueda hacerlo. Abra el archivo con JL_O_EXCL
si esto es una preocupación. También se recomienda usar mktemp()
en su lugar.
Base.Filesystem.tempdir
— Functiontempdir()
Obtiene la ruta del directorio temporal. En Windows, tempdir()
utiliza la primera variable de entorno encontrada en la lista ordenada TMP
, TEMP
, USERPROFILE
. En todos los demás sistemas operativos, tempdir()
utiliza la primera variable de entorno encontrada en la lista ordenada TMPDIR
, TMP
, TEMP
y TEMPDIR
. Si ninguna de estas se encuentra, se utiliza la ruta "/tmp"
.
Base.Filesystem.mktemp
— Methodmktemp(parent=tempdir(); cleanup=true) -> (path, io)
Devuelve (path, io)
, donde path
es la ruta de un nuevo archivo temporal en parent
y io
es un objeto de archivo abierto para esta ruta. La opción cleanup
controla si el archivo temporal se elimina automáticamente cuando el proceso finaliza.
El argumento de palabra clave cleanup
se agregó en Julia 1.3. Relacionado con esto, a partir de 1.3, Julia eliminará las rutas temporales creadas por mktemp
cuando el proceso de Julia finalice, a menos que cleanup
se establezca explícitamente en false
.
Base.Filesystem.mktemp
— Methodmktemp(f::Function, parent=tempdir())
Aplica la función f
al resultado de mktemp(parent)
y elimina el archivo temporal al finalizar.
Véase también: mktempdir
.
Base.Filesystem.mktempdir
— Methodmktempdir(parent=tempdir(); prefix="jl_", cleanup=true) -> path
Crea un directorio temporal en el directorio parent
con un nombre construido a partir del prefix
dado y un sufijo aleatorio, y devuelve su ruta. Además, en algunas plataformas, cualquier carácter 'X'
final en prefix
puede ser reemplazado por caracteres aleatorios. Si parent
no existe, se lanzará un error. La opción cleanup
controla si el directorio temporal se elimina automáticamente cuando el proceso finaliza.
El argumento de palabra clave prefix
se agregó en Julia 1.2.
El argumento de palabra clave cleanup
se agregó en Julia 1.3. Relacionado con esto, a partir de 1.3, Julia eliminará las rutas temporales creadas por mktempdir
cuando el proceso de Julia finalice, a menos que cleanup
se establezca explícitamente en false
.
Base.Filesystem.mktempdir
— Methodmktempdir(f::Function, parent=tempdir(); prefix="jl_")
Aplica la función f
al resultado de mktempdir(parent; prefix)
y elimina el directorio temporal y todo su contenido al finalizar.
El argumento de palabra clave prefix
se agregó en Julia 1.2.
Base.Filesystem.isblockdev
— Functionisblockdev(path) -> Bool
Devuelve true
si path
es un dispositivo de bloque, false
en caso contrario.
Base.Filesystem.ischardev
— Functionischardev(path) -> Bool
Devuelve true
si path
es un dispositivo de caracteres, false
en caso contrario.
Base.Filesystem.isdir
— Functionisdir(path) -> Bool
Devuelve true
si path
es un directorio, false
en caso contrario.
Ejemplos
julia> isdir(homedir())
true
julia> isdir("not/a/directory")
false
Base.Filesystem.isfifo
— Functionisfifo(path) -> Bool
Devuelve true
si path
es un FIFO, false
en caso contrario.
Base.Filesystem.isfile
— Functionisfile(path) -> Bool
Devuelve true
si path
es un archivo regular, false
en caso contrario.
Ejemplos
julia> isfile(homedir())
false
julia> filename = "test_file.txt";
julia> write(filename, "¡Hola mundo!");
julia> isfile(filename)
true
julia> rm(filename);
julia> isfile(filename)
false
Base.Filesystem.islink
— Functionislink(path) -> Bool
Devuelve true
si path
es un enlace simbólico, false
en caso contrario.
Base.Filesystem.ismount
— Functionismount(path) -> Bool
Devuelve true
si path
es un punto de montaje, false
en caso contrario.
Base.Filesystem.ispath
— Functionispath(path) -> Bool
Devuelve true
si existe una entidad de sistema de archivos válida en path
, de lo contrario devuelve false
. Esta es la generalización de isfile
, isdir
etc.
Base.Filesystem.issetgid
— Functionissetgid(path) -> Bool
Devuelve true
si path
tiene el flag setgid establecido, false
en caso contrario.
Base.Filesystem.issetuid
— Functionissetuid(path) -> Bool
Devuelve true
si path
tiene el flag setuid establecido, false
en caso contrario.
Base.Filesystem.issocket
— Functionissocket(path) -> Bool
Devuelve true
si path
es un socket, false
en caso contrario.
Base.Filesystem.issticky
— Functionissticky(path) -> Bool
Devuelve true
si path
tiene el bit sticky establecido, false
de lo contrario.
Base.Filesystem.homedir
— Functionhomedir() -> String
Devuelve el directorio home del usuario actual.
homedir
determina el directorio home a través de libuv
's uv_os_homedir
. Para más detalles (por ejemplo, sobre cómo especificar el directorio home a través de variables de entorno), consulta la documentación de uv_os_homedir
.
Consulta también Sys.username
.
Base.Filesystem.dirname
— Functiondirname(path::AbstractString) -> String
Obtiene la parte del directorio de una ruta. Los caracteres finales ('/' o '\') en la ruta se cuentan como parte de la ruta.
Ejemplos
julia> dirname("/home/myuser")
"/home"
julia> dirname("/home/myuser/")
"/home/myuser"
Ver también basename
.
Base.Filesystem.basename
— Functionbasename(path::AbstractString) -> String
Obtiene la parte del nombre del archivo de una ruta.
Esta función difiere ligeramente del programa basename
de Unix, donde las barras finales se ignoran, es decir, $ basename /foo/bar/
devuelve bar
, mientras que basename
en Julia devuelve una cadena vacía ""
.
Ejemplos
julia> basename("/home/myuser/example.jl")
"example.jl"
julia> basename("/home/myuser/")
""
Ver también dirname
.
Base.Filesystem.isabspath
— Functionisabspath(path::AbstractString) -> Bool
Determina si una ruta es absoluta (comienza en el directorio raíz).
Ejemplos
julia> isabspath("/home")
true
julia> isabspath("home")
false
Base.Filesystem.isdirpath
— Functionisdirpath(path::AbstractString) -> Bool
Determina si una ruta se refiere a un directorio (por ejemplo, termina con un separador de ruta).
Ejemplos
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
Une los componentes de la ruta en una ruta completa. Si algún argumento es una ruta absoluta o (en Windows) tiene una especificación de unidad que no coincide con la unidad calculada para la unión de las rutas anteriores, entonces se descartan los componentes anteriores.
Nota sobre Windows: dado que hay un directorio actual para cada unidad, joinpath("c:", "foo")
representa una ruta relativa al directorio actual en la unidad "c:", por lo que esto es igual a "c:foo", no "c:\foo". Además, joinpath
trata esto como una ruta no absoluta e ignora la capitalización de la letra de la unidad, por lo tanto, joinpath("C:\A","c:b") = "C:\A\b"
.
Ejemplos
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
Convierte una ruta a una ruta absoluta añadiendo el directorio actual si es necesario. También normaliza la ruta como en normpath
.
Ejemplos
Si estás en un directorio llamado JuliaExample
y los datos que estás utilizando están dos niveles arriba en relación con el directorio JuliaExample
, podrías escribir:
abspath("../../data")
Lo que da una ruta como "/home/JuliaUser/data/"
.
Consulta también joinpath
, pwd
, expanduser
.
abspath(path::AbstractString, paths::AbstractString...) -> String
Convierte un conjunto de rutas a una ruta absoluta al unirlas y agregar el directorio actual si es necesario. Equivalente a abspath(joinpath(path, paths...))
.
Base.Filesystem.normpath
— Functionnormpath(path::AbstractString) -> String
Normaliza una ruta, eliminando las entradas "." y ".." y cambiando "/" al separador de ruta canónico para el sistema.
Ejemplos
julia> normpath("/home/myuser/../example.jl")
"/home/example.jl"
julia> normpath("Documents/Julia") == joinpath("Documents", "Julia")
true
normpath(path::AbstractString, paths::AbstractString...) -> String
Convierte un conjunto de rutas a una ruta normalizada al unirlas y eliminar las entradas "." y "..". Equivalente a normpath(joinpath(path, paths...))
.
Base.Filesystem.realpath
— Functionrealpath(path::AbstractString) -> String
Canonicaliza una ruta expandiendo enlaces simbólicos y eliminando entradas "." y "..". En sistemas de archivos que son insensibles a mayúsculas y conservan el caso (típicamente Mac y Windows), se devuelve el caso almacenado por el sistema de archivos para la ruta.
(Esta función lanza una excepción si path
no existe en el sistema de archivos.)
Base.Filesystem.relpath
— Functionrelpath(path::AbstractString, startpath::AbstractString = ".") -> String
Devuelve una ruta de archivo relativa a path
ya sea desde el directorio actual o desde un directorio de inicio opcional. Este es un cálculo de ruta: no se accede al sistema de archivos para confirmar la existencia o naturaleza de path
o startpath
.
En Windows, la sensibilidad a mayúsculas y minúsculas se aplica a cada parte de la ruta, excepto a las letras de unidad. Si path
y startpath
se refieren a diferentes unidades, se devuelve la ruta absoluta de path
.
Base.Filesystem.expanduser
— Functionexpanduser(path::AbstractString) -> AbstractString
En sistemas Unix, reemplaza un carácter de tilde al inicio de una ruta con el directorio home del usuario actual.
Véase también: contractuser
.
Base.Filesystem.contractuser
— Functioncontractuser(path::AbstractString) -> AbstractString
En sistemas Unix, si la ruta comienza con homedir()
, reemplázala con un carácter de tilde.
Véase también: expanduser
.
Base.Filesystem.samefile
— Functionsamefile(path_a::AbstractString, path_b::AbstractString)
Verifica si las rutas path_a
y path_b
se refieren al mismo archivo o directorio existente.
Base.Filesystem.splitdir
— Functionsplitdir(path::AbstractString) -> (AbstractString, AbstractString)
Divide una ruta en una tupla del nombre del directorio y el nombre del archivo.
Ejemplos
julia> splitdir("/home/myuser")
("/home", "myuser")
Base.Filesystem.splitdrive
— Functionsplitdrive(path::AbstractString) -> (AbstractString, AbstractString)
En Windows, divide una ruta en la parte de la letra de unidad y la parte de la ruta. En sistemas Unix, el primer componente es siempre la cadena vacía.
Base.Filesystem.splitext
— Functionsplitext(path::AbstractString) -> (String, String)
Si el último componente de una ruta contiene uno o más puntos, divide la ruta en todo lo que está antes del último punto y todo lo que incluye y después del punto. De lo contrario, devuelve una tupla del argumento sin modificar y la cadena vacía. "splitext" es una abreviatura de "dividir extensión".
Ejemplos
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}
Divide una ruta de archivo en todos sus componentes de ruta. Esto es lo opuesto a joinpath
. Devuelve un arreglo de subcadenas, una para cada directorio o archivo en la ruta, incluyendo el directorio raíz si está presente.
Esta función requiere al menos Julia 1.1.
Ejemplos
julia> splitpath("/home/myuser/example.jl")
4-element Vector{String}:
"/"
"home"
"myuser"
"example.jl"