文件系统
Base.Filesystem.pwd
— 函数pwd() -> String
获取当前工作目录。
示例
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
为假时,readdir
只返回目录中的文件名;当 join
为真时,它为每个 name
返回 joinpath(dir, name)
,以便返回的字符串为完整路径。如果要获取绝对路径,请使用绝对目录路径和 join
设置为 true 调用 readdir
。
默认情况下,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
— 函数walkdir(dir; topdown=true, follow_symlinks=false, onerror=throw)
返回一个迭代器,该迭代器遍历目录的目录树。迭代器返回一个包含 (rootpath, dirs, files)
的元组。目录树可以自顶向下或自底向上遍历。如果 walkdir
或 stat
遇到 IOError
,它将默认重新抛出错误。可以通过 onerror
关键字参数提供自定义错误处理函数。onerror
使用 IOError
作为参数被调用。
另请参阅:readdir
。
示例
for (root, dirs, files) in walkdir(".")
println("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
不同,如果 path
(或其部分)已存在,mkpath
不会出错。但是,如果 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
存在且为文件,则仍将创建目录符号链接,但取消引用符号链接将失败,就像用户创建文件符号链接(通过在创建目录之前将 dir_target
设置为 false
调用 symlink()
)并尝试取消引用它到目录一样。
此外,在 Windows 上创建链接有两种方法:符号链接和联接点。联接点效率略高,但不支持相对路径,因此如果请求相对目录符号链接(如 isabspath(target)
返回 false
所示),则将使用符号链接,否则将使用联接点。在 Windows 上创建符号链接的最佳实践是在创建它们引用的文件/目录后才创建它们。
另请参阅:hardlink
。
此函数在不支持软符号链接的操作系统(如 Windows XP)下会引发错误。
dir_target
关键字参数在 Julia 1.6 中添加。在此之前,指向 Windows 上不存在路径的符号链接始终为文件符号链接,并且不支持指向目录的相对符号链接。
Base.Filesystem.readlink
— 函数readlink(path::AbstractString) -> String
返回符号链接 path
指向的目标位置。
Base.Filesystem.chmod
— 函数chmod(path::AbstractString, mode::Integer; recursive::Bool=false)
将 path
的权限模式更改为 mode
。目前仅支持整数 mode
(例如 0o777
)。如果 recursive=true
且路径为目录,则该目录中的所有权限将被递归更改。返回 path
。
在 Julia 1.6 之前,此操作无法正确操作 Windows 上的文件系统 ACL,因此它只会设置文件上的只读位。现在它能够操作 ACL。
Base.Filesystem.chown
— 函数chown(path::AbstractString, owner::Integer, group::Integer=-1)
将 path
的所有者和/或组更改为 owner
和/或 group
。如果为 owner
或 group
输入的值为 -1
,则相应的 ID 不会更改。目前仅支持整数 owner
和 group
。返回 path
。
Base.Libc.RawFD
— 类型RawFD
包装原生操作系统文件描述符的原始类型。RawFD
可以传递给诸如 stat
之类的方法以发现有关底层文件的信息,并且还可以用于打开流,其中 RawFD
描述了流所基于的操作系统文件。
Base.stat
— 函数stat(file)
返回一个结构体,其字段包含有关文件的信息。结构体的字段如下:
名称 | 描述 |
---|---|
desc | 路径或操作系统文件描述符 |
size | 文件的大小(以字节为单位) |
device | 包含文件的设备的 ID |
inode | 文件的 inode 号 |
mode | 文件的保护模式 |
nlink | 指向文件的硬链接数 |
uid | 文件所有者的用户 ID |
gid | 文件所有者的组 ID |
rdev | 如果此文件引用设备,则为其引用的设备的 ID |
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
— 函数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
是目录还是文件执行不同的操作。当 dst
是目录时使用 force=true
将导致 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)
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
我们可以看到 touch
修改了 mtime
。
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 将在 Julia 进程退出时删除 mktemp
创建的临时路径,除非 cleanup
显式设置为 false
。
Base.Filesystem.mktemp
— 方法Base.Filesystem.mktempdir
— 方法mktempdir(parent=tempdir(); prefix="jl_", cleanup=true) -> path
在 parent
目录中创建一个临时目录,其名称由给定的 prefix
和随机后缀构成,并返回其路径。此外,在某些平台上,prefix
中的任何尾随 'X'
字符都可能会被随机字符替换。如果 parent
不存在,则抛出错误。cleanup
选项控制进程退出时是否自动删除临时目录。
prefix
关键字参数是在 Julia 1.2 中添加的。
cleanup
关键字参数是在 Julia 1.3 中添加的。相关地,从 1.3 开始,Julia 将在 Julia 进程退出时删除 mktempdir
创建的临时路径,除非 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
如果 path
是块设备,则返回 true
,否则返回 false
。
Base.Filesystem.ischardev
— 函数ischardev(path) -> Bool
如果 path
是字符设备,则返回 true
,否则返回 false
。
Base.Filesystem.isdir
— 函数isdir(path) -> Bool
如果 path
是目录,则返回 true
,否则返回 false
。
示例
julia> isdir(homedir())
true
julia> isdir("not/a/directory")
false
Base.Filesystem.isfifo
— 函数isfifo(path) -> Bool
如果 path
是 FIFO,则返回 true
,否则返回 false
。
Base.Filesystem.isfile
— 函数isfile(path) -> Bool
如果path
是普通文件,则返回true
,否则返回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
— 函数islink(path) -> Bool
如果path
是符号链接,则返回true
,否则返回false
。
Base.Filesystem.ismount
— 函数ismount(path) -> Bool
如果path
是挂载点,则返回true
,否则返回false
。
Base.Filesystem.ispath
— 函数Base.Filesystem.issetgid
— 函数issetgid(path) -> Bool
如果path
设置了setgid标志,则返回true
,否则返回false
。
Base.Filesystem.issetuid
— 函数issetuid(path) -> Bool
如果path
设置了setuid标志,则返回true
,否则返回false
。
Base.Filesystem.issocket
— 函数issocket(path) -> Bool
如果path
是套接字,则返回true
,否则返回false
。
Base.Filesystem.issticky
— 函数issticky(path) -> Bool
如果path
设置了粘滞位,则返回true
,否则返回false
。
Base.Filesystem.homedir
— 函数homedir() -> String
返回当前用户的家目录。
homedir
通过libuv
的uv_os_homedir
确定家目录。有关详细信息(例如如何通过环境变量指定家目录),请参阅uv_os_homedir
文档。
Base.Filesystem.dirname
— 函数dirname(path::AbstractString) -> String
获取路径的目录部分。路径中的尾随字符('/' 或 '\')被视为路径的一部分。
示例
julia> dirname("/home/myuser")
"/home"
julia> dirname("/home/myuser/")
"/home/myuser"
另请参阅 basename
。
Base.Filesystem.basename
— 函数basename(path::AbstractString) -> String
获取路径的文件名部分。
此函数与Unix basename
程序略有不同,后者会忽略尾随斜杠,例如$ basename /foo/bar/
返回bar
,而Julia中的basename
返回空字符串""
。
示例
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
中所示。
示例
如果您位于名为JuliaExample
的目录中,并且您正在使用的数据相对于JuliaExample
目录向上两级,则可以编写
abspath("../../data")
这将提供类似"/home/JuliaUser/data/"
的路径。
另请参阅 joinpath
、pwd
、expanduser
。
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 = ".") -> String
返回相对于当前目录或可选的起始目录的path
的相对文件路径。这是一个路径计算:不会访问文件系统以确认path
或startpath
的存在或性质。
在Windows上,区分大小写应用于路径的每个部分,除了驱动器盘符。如果path
和startpath
引用不同的驱动器,则返回path
的绝对路径。
Base.Filesystem.expanduser
— 函数expanduser(path::AbstractString) -> AbstractString
在Unix系统上,将路径开头的波浪号字符替换为当前用户的家目录。
另请参阅:contractuser
。
Base.Filesystem.contractuser
— 函数contractuser(path::AbstractString) -> AbstractString
在Unix系统上,如果路径以homedir()
开头,则将其替换为波浪号字符。
另请参阅:expanduser
。
Base.Filesystem.samefile
— 函数samefile(path_a::AbstractString, path_b::AbstractString)
检查路径path_a
和path_b
是否引用相同的存在文件或目录。
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) -> (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
— 函数splitpath(path::AbstractString) -> Vector{String}
将文件路径拆分为其所有路径组件。这与joinpath
相反。返回一个子字符串数组,每个子字符串代表路径中的每个目录或文件,包括根目录(如果存在)。
此函数需要至少 Julia 1.1。
示例
julia> splitpath("/home/myuser/example.jl")
4-element Vector{String}:
"/"
"home"
"myuser"
"example.jl"