Filesystem
Base.read — Methodread(filename::AbstractString)将文件的全部内容读取为 Vector{UInt8}。
read(filename::AbstractString, String)将文件的全部内容读取为字符串。
read(filename::AbstractString, args...)打开一个文件并读取其内容。args 被传递给 read:这相当于 open(io->read(io, args...), filename)。
Base.write — Methodwrite(filename::AbstractString, content)将 content 的规范二进制表示写入文件,如果文件尚不存在,则会创建该文件;如果文件已存在,则会覆盖该文件。
返回写入文件的字节数。
Base.Filesystem.pwd — Functionpwd() -> String获取当前工作目录。
示例
julia> pwd()
"/home/JuliaUser"
julia> cd("/home/JuliaUser/Projects/julia")
julia> pwd()
"/home/JuliaUser/Projects/julia"Base.Filesystem.cd — Methodcd(dir::AbstractString=homedir())设置当前工作目录。
另请参见:pwd, mkdir, mkpath, mktempdir。
示例
julia> cd("/home/JuliaUser/Projects/julia")
julia> pwd()
"/home/JuliaUser/Projects/julia"
julia> cd()
julia> pwd()
"/home/JuliaUser"Base.Filesystem.cd — Methodcd(f::Function, dir::AbstractString=homedir())暂时将当前工作目录更改为 dir,应用函数 f,最后返回到原始目录。
示例
julia> pwd()
"/home/JuliaUser"
julia> cd(readdir, "/home/JuliaUser/Projects/julia")
34-element Array{String,1}:
 ".circleci"
 ".freebsdci.sh"
 ".git"
 ".gitattributes"
 ".github"
 ⋮
 "test"
 "ui"
 "usr"
 "usr-staging"
julia> pwd()
"/home/JuliaUser"Base.Filesystem.readdir — Functionreaddir(dir::AbstractString=pwd();
    join::Bool = false,
    sort::Bool = true,
) -> Vector{String}返回目录 dir 中的名称,如果未给出,则返回当前工作目录的名称。当 join 为 false 时,readdir 仅返回目录中的名称;当 join 为 true 时,它返回 joinpath(dir, name) 对于每个 name,以便返回的字符串是完整路径。如果您想要获取绝对路径,请使用绝对目录路径调用 readdir,并将 join 设置为 true。
默认情况下,readdir 会对返回的名称列表进行排序。如果您想跳过排序并按文件系统列出的顺序获取名称,可以使用 readdir(dir, sort=false) 来选择不排序。
另请参见: walkdir。
join 和 sort 关键字参数至少需要 Julia 1.4。
示例
julia> cd("/home/JuliaUser/dev/julia")
julia> readdir()
30-element Array{String,1}:
 ".appveyor.yml"
 ".git"
 ".gitattributes"
 ⋮
 "ui"
 "usr"
 "usr-staging"
julia> readdir(join=true)
30-element Array{String,1}:
 "/home/JuliaUser/dev/julia/.appveyor.yml"
 "/home/JuliaUser/dev/julia/.git"
 "/home/JuliaUser/dev/julia/.gitattributes"
 ⋮
 "/home/JuliaUser/dev/julia/ui"
 "/home/JuliaUser/dev/julia/usr"
 "/home/JuliaUser/dev/julia/usr-staging"
julia> readdir("base")
145-element Array{String,1}:
 ".gitignore"
 "Base.jl"
 "Enums.jl"
 ⋮
 "version_git.sh"
 "views.jl"
 "weakkeydict.jl"
julia> readdir("base", join=true)
145-element Array{String,1}:
 "base/.gitignore"
 "base/Base.jl"
 "base/Enums.jl"
 ⋮
 "base/version_git.sh"
 "base/views.jl"
 "base/weakkeydict.jl"
julia> readdir(abspath("base"), join=true)
145-element Array{String,1}:
 "/home/JuliaUser/dev/julia/base/.gitignore"
 "/home/JuliaUser/dev/julia/base/Base.jl"
 "/home/JuliaUser/dev/julia/base/Enums.jl"
 ⋮
 "/home/JuliaUser/dev/julia/base/version_git.sh"
 "/home/JuliaUser/dev/julia/base/views.jl"
 "/home/JuliaUser/dev/julia/base/weakkeydict.jl"Base.Filesystem.walkdir — Functionwalkdir(dir; topdown=true, follow_symlinks=false, onerror=throw)返回一个迭代器,该迭代器遍历目录的目录树。迭代器返回一个包含 (rootpath, dirs, files) 的元组。目录树可以自上而下或自下而上遍历。如果 walkdir 或 stat 遇到 IOError,它将默认重新抛出错误。可以通过 onerror 关键字参数提供自定义错误处理函数。onerror 以 IOError 作为参数调用。
另见: readdir。
示例
for (root, dirs, files) in walkdir(".")
    println("Directories in $root")
    for dir in dirs
        println(joinpath(root, dir)) # 目录的路径
    end
    println("Files in $root")
    for file in files
        println(joinpath(root, file)) # 文件的路径
    end
endjulia> mkpath("my/test/dir");
julia> itr = walkdir("my");
julia> (root, dirs, files) = first(itr)
("my", ["test"], String[])
julia> (root, dirs, files) = first(itr)
("my/test", ["dir"], String[])
julia> (root, dirs, files) = first(itr)
("my/test/dir", String[], String[])Base.Filesystem.mkdir — Functionmkdir(path::AbstractString; mode::Unsigned = 0o777)创建一个名为 path 的新目录,权限为 mode。mode 默认为 0o777,并受到当前文件创建掩码的影响。此函数从不创建超过一个目录。如果目录已经存在,或者某些中间目录不存在,此函数会抛出错误。请参见 mkpath 以获取创建所有所需中间目录的函数。返回 path。
示例
julia> mkdir("testingdir")
"testingdir"
julia> cd("testingdir")
julia> pwd()
"/home/JuliaUser/testingdir"Base.Filesystem.mkpath — Functionmkpath(path::AbstractString; mode::Unsigned = 0o777)根据需要创建path中的所有中间目录。目录的权限为mode,默认为0o777,并受到当前文件创建掩码的影响。与mkdir不同,如果path(或其部分)已经存在,mkpath不会报错。然而,如果path(或其部分)指向一个已存在的文件,则会抛出错误。返回path。
如果path包含文件名,您可能希望使用mkpath(dirname(path))来避免使用文件名创建目录。
示例
julia> cd(mktempdir())
julia> mkpath("my/test/dir") # 创建三个目录
"my/test/dir"
julia> readdir()
1-element Array{String,1}:
 "my"
julia> cd("my")
julia> readdir()
1-element Array{String,1}:
 "test"
julia> readdir("test")
1-element Array{String,1}:
 "dir"
julia> mkpath("intermediate_dir/actually_a_directory.txt") # 创建两个目录
"intermediate_dir/actually_a_directory.txt"
julia> isdir("intermediate_dir/actually_a_directory.txt")
true
Base.Filesystem.hardlink — Functionhardlink(src::AbstractString, dst::AbstractString)创建一个指向现有源文件 src 的硬链接,名称为 dst。目标 dst 不能存在。
另见:symlink。
此方法是在 Julia 1.8 中添加的。
Base.Filesystem.symlink — Functionsymlink(target::AbstractString, link::AbstractString; dir_target = false)创建一个指向 target 的符号链接,名称为 link。
在 Windows 上,符号链接必须明确声明是指向目录还是其他。如果 target 已经存在,默认情况下 link 的类型将被自动检测,然而如果 target 不存在,则此函数默认创建一个文件符号链接,除非将 dir_target 设置为 true。请注意,如果用户设置了 dir_target 但 target 存在且是一个文件,仍然会创建一个目录符号链接,但解引用该符号链接将失败,就像用户创建一个文件符号链接(通过在目录创建之前调用 symlink() 并将 dir_target 设置为 false)并尝试将其解引用为目录一样。
此外,在 Windows 上有两种创建链接的方法;符号链接和连接点。连接点稍微高效一些,但不支持相对路径,因此如果请求相对目录符号链接(如 isabspath(target) 返回 false 所示),将使用符号链接,否则将使用连接点。在 Windows 上创建符号链接的最佳实践是在引用的文件/目录已经创建后再创建它们。
另请参见: hardlink。
在不支持软符号链接的操作系统(如 Windows XP)下,此函数会引发错误。
dir_target 关键字参数是在 Julia 1.6 中添加的。在此之前,指向不存在路径的符号链接在 Windows 上总是文件符号链接,并且不支持指向目录的相对符号链接。
Base.Filesystem.readlink — Functionreadlink(path::AbstractString) -> String返回符号链接 path 指向的目标位置。
Base.Filesystem.chmod — Functionchmod(path::AbstractString, mode::Integer; recursive::Bool=false)将 path 的权限模式更改为 mode。目前仅支持整数 mode(例如 0o777)。如果 recursive=true 且路径是一个目录,则该目录中的所有权限将被递归更改。返回 path。
在 Julia 1.6 之前,这在 Windows 上无法正确操作文件系统 ACL,因此它只会在文件上设置只读位。现在它能够操作 ACL。
Base.Filesystem.chown — Functionchown(path::AbstractString, owner::Integer, group::Integer=-1)将 path 的所有者和/或组更改为 owner 和/或 group。如果输入的 owner 或 group 的值为 -1,则相应的 ID 将不会更改。目前仅支持整数类型的 owner 和 group。返回 path。
Base.Libc.RawFD — TypeRawFD原始类型,封装了本地操作系统文件描述符。RawFD可以传递给像stat这样的函数,以发现有关底层文件的信息,也可以用于打开流,RawFD描述了支持该流的操作系统文件。
Base.stat — Functionstat(file)返回一个结构体,其字段包含有关文件的信息。结构体的字段如下:
| 名称 | 类型 | 描述 | 
|---|---|---|
| desc | Union{String, Base.OS_HANDLE} | 文件的路径或操作系统文件描述符 | 
| size | Int64 | 文件的大小(以字节为单位) | 
| device | UInt | 包含该文件的设备的ID | 
| inode | UInt | 文件的inode号 | 
| mode | UInt | 文件的保护模式 | 
| nlink | Int | 指向该文件的硬链接数量 | 
| uid | UInt | 文件所有者的用户ID | 
| gid | UInt | 文件所有者的组ID | 
| rdev | UInt | 如果该文件指向一个设备,则指向该设备的ID | 
| blksize | Int64 | 文件系统为该文件首选的块大小 | 
| blocks | Int64 | 分配的512字节块的数量 | 
| mtime | Float64 | 文件最后修改的Unix时间戳 | 
| ctime | Float64 | 文件元数据更改的Unix时间戳 | 
Base.Filesystem.diskstat — Functiondiskstat(path=pwd())返回关于包含由 path 指向的文件或目录的磁盘的字节统计信息。如果未传递任何参数,则返回包含当前工作目录的磁盘的统计信息。
此方法是在 Julia 1.8 中添加的。
Base.Filesystem.lstat — Functionlstat(file)像 stat 一样,但对于符号链接获取的是链接本身的信息,而不是它所指向的文件的信息。此函数必须在文件路径上调用,而不是文件对象或文件描述符上。
Base.Filesystem.ctime — Functionctime(file)等价于 stat(file).ctime。
Base.Filesystem.mtime — Functionmtime(file)等同于 stat(file).mtime。
Base.Filesystem.filemode — Functionfilemode(file)等同于 stat(file).mode。
Base.filesize — Functionfilesize(path...)等同于 stat(file).size。
Base.Filesystem.uperm — FunctionBase.Filesystem.gperm — Functiongperm(file)类似于 uperm,但获取拥有该文件的组的权限。
Base.Filesystem.operm — Functionoperm(file)类似于 uperm,但获取既不是文件所有者也不是拥有该文件的组成员的人的权限。
Base.Filesystem.cp — Functioncp(src::AbstractString, dst::AbstractString; force::Bool=false, follow_symlinks::Bool=false)将文件、链接或目录从 src 复制到 dst。force=true 将首先删除现有的 dst。
如果 follow_symlinks=false,并且 src 是一个符号链接,则 dst 将作为符号链接创建。如果 follow_symlinks=true 并且 src 是一个符号链接,则 dst 将是 src 所指向的文件或目录的副本。返回 dst。
cp 函数与 cp 命令不同。cp 函数始终假设 dst 是一个文件,而命令则根据 dst 是目录还是文件执行不同的操作。当 dst 是一个目录时使用 force=true 将导致 dst 目录中所有内容的丢失,并且 dst 将变成一个包含 src 内容的文件。
Base.download — Functiondownload(url::AbstractString, [path::AbstractString = tempname()]) -> path从给定的 url 下载文件,保存到位置 path,如果未指定,则保存到临时路径。返回下载文件的路径。
从 Julia 1.6 开始,此函数已被弃用,仅是 Downloads.download 的一个薄包装。在新代码中,您应该直接使用该函数,而不是调用这个。
Base.Filesystem.mv — Functionmv(src::AbstractString, dst::AbstractString; force::Bool=false)将文件、链接或目录从 src 移动到 dst。force=true 将首先删除现有的 dst。返回 dst。
示例
julia> write("hello.txt", "world");
julia> mv("hello.txt", "goodbye.txt")
"goodbye.txt"
julia> "hello.txt" in readdir()
false
julia> readline("goodbye.txt")
"world"
julia> write("hello.txt", "world2");
julia> mv("hello.txt", "goodbye.txt")
ERROR: ArgumentError: 'goodbye.txt' 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 — Functionrm(path::AbstractString; force::Bool=false, recursive::Bool=false)删除给定路径下的文件、链接或空目录。如果传递了 force=true,则不存在的路径不会被视为错误。如果传递了 recursive=true 并且路径是一个目录,则所有内容将被递归删除。
示例
julia> mkpath("my/test/dir");
julia> rm("my", recursive=true)
julia> rm("this_file_does_not_exist", force=true)
julia> rm("this_file_does_not_exist")
ERROR: IOError: unlink("this_file_does_not_exist"): no such file or directory (ENOENT)
Stacktrace:
[...]Base.Filesystem.touch — Functiontouch(path::AbstractString)
touch(fd::File)将文件的最后修改时间戳更新为当前时间。
如果文件不存在,则会创建一个新文件。
返回 path。
示例
julia> write("my_little_file", 2);
julia> mtime("my_little_file")
1.5273815391135583e9
julia> touch("my_little_file");
julia> mtime("my_little_file")
1.527381559163435e9我们可以看到 mtime 已被 touch 修改。
Base.Filesystem.tempname — Functiontempname(parent=tempdir(); cleanup=true) -> String生成一个临时文件路径。此函数仅返回一个路径;不会创建文件。该路径可能是唯一的,但由于两个同时调用 tempname 生成相同文件名的可能性非常小,因此无法保证。该名称保证与调用 tempname 时已存在的所有文件不同。
当不带参数调用时,临时名称将是系统临时目录中临时名称的绝对路径,如 tempdir() 所示。如果提供了 parent 目录参数,则临时路径将位于该目录中。
cleanup 选项控制进程在退出时是否尝试自动删除返回的路径。请注意,tempname 函数不会在返回的位置创建任何文件或目录,因此除非您在该位置创建文件或目录,否则没有任何内容需要清理。如果您这样做并且 cleanup 为 true,则在进程终止时将被删除。
parent 和 cleanup 参数是在 1.4 中添加的。在 Julia 1.4 之前,tempname 的路径在进程终止时永远不会被清理。
如果另一个进程获得相同的文件名并在您能够之前创建该文件,这可能会导致安全漏洞。如果这是一个问题,请使用 JL_O_EXCL 打开文件。也建议使用 mktemp()。
Base.Filesystem.tempdir — Functiontempdir()获取临时目录的路径。在 Windows 上,tempdir() 使用在有序列表 TMP、TEMP、USERPROFILE 中找到的第一个环境变量。在所有其他操作系统上,tempdir() 使用在有序列表 TMPDIR、TMP、TEMP 和 TEMPDIR 中找到的第一个环境变量。如果没有找到这些,使用路径 "/tmp"。
Base.Filesystem.mktemp — Methodmktemp(parent=tempdir(); cleanup=true) -> (path, io)返回 (path, io),其中 path 是 parent 中新临时文件的路径,io 是该路径的打开文件对象。cleanup 选项控制临时文件在进程退出时是否自动删除。
cleanup 关键字参数是在 Julia 1.3 中添加的。相关地,从 1.3 开始,Julia 会在 Julia 进程退出时删除由 mktemp 创建的临时路径,除非 cleanup 被显式设置为 false。
Base.Filesystem.mktemp — MethodBase.Filesystem.mktempdir — Methodmktempdir(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 — Methodmktempdir(f::Function, parent=tempdir(); prefix="jl_")将函数 f 应用到 mktempdir(parent; prefix) 的结果,并在完成后删除临时目录及其所有内容。
prefix 关键字参数是在 Julia 1.2 中添加的。
Base.Filesystem.isblockdev — Functionisblockdev(path) -> Bool如果 path 是一个块设备,则返回 true,否则返回 false。
Base.Filesystem.ischardev — Functionischardev(path) -> Bool如果 path 是一个字符设备,则返回 true,否则返回 false。
Base.Filesystem.isdir — Functionisdir(path) -> Bool如果 path 是一个目录,则返回 true,否则返回 false。
示例
julia> isdir(homedir())
true
julia> isdir("not/a/directory")
falseBase.Filesystem.isfifo — Functionisfifo(path) -> Bool如果 path 是一个 FIFO,则返回 true,否则返回 false。
Base.Filesystem.isfile — Functionisfile(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)
falseBase.Filesystem.islink — Functionislink(path) -> Bool如果 path 是符号链接,则返回 true,否则返回 false。
Base.Filesystem.ismount — Functionismount(path) -> Bool如果 path 是一个挂载点,则返回 true,否则返回 false。
Base.Filesystem.ispath — FunctionBase.Filesystem.issetgid — Functionissetgid(path) -> Bool如果 path 设置了 setgid 标志,则返回 true,否则返回 false。
Base.Filesystem.issetuid — Functionissetuid(path) -> Bool如果 path 设置了 setuid 标志,则返回 true,否则返回 false。
Base.Filesystem.issocket — Functionissocket(path) -> Bool如果 path 是一个套接字,则返回 true,否则返回 false。
Base.Filesystem.issticky — Functionissticky(path) -> Bool如果 path 设置了粘滞位,则返回 true,否则返回 false。
Base.Filesystem.homedir — Functionhomedir() -> String返回当前用户的主目录。
homedir 通过 libuv 的 uv_os_homedir 确定主目录。有关详细信息(例如如何通过环境变量指定主目录),请参见 uv_os_homedir 文档。
另见 Sys.username.
Base.Filesystem.dirname — Functiondirname(path::AbstractString) -> String获取路径的目录部分。路径中的尾随字符('/' 或 '\')被视为路径的一部分。
示例
julia> dirname("/home/myuser")
"/home"
julia> dirname("/home/myuser/")
"/home/myuser"另见 basename.
Base.Filesystem.basename — Functionbasename(path::AbstractString) -> String获取路径的文件名部分。
此函数与 Unix 的 basename 程序略有不同,后缀斜杠会被忽略,即 $ basename /foo/bar/ 返回 bar,而 Julia 中的 basename 返回空字符串 ""。
示例
julia> basename("/home/myuser/example.jl")
"example.jl"
julia> basename("/home/myuser/")
""另见 dirname.
Base.Filesystem.isabspath — Functionisabspath(path::AbstractString) -> Bool确定路径是否为绝对路径(以根目录开始)。
示例
julia> isabspath("/home")
true
julia> isabspath("home")
falseBase.Filesystem.isdirpath — Functionisdirpath(path::AbstractString) -> Bool确定路径是否指向一个目录(例如,是否以路径分隔符结尾)。
示例
julia> isdirpath("/home")
false
julia> isdirpath("/home/")
trueBase.Filesystem.joinpath — Functionjoinpath(parts::AbstractString...) -> String
joinpath(parts::Vector{AbstractString}) -> String
joinpath(parts::Tuple{AbstractString}) -> String将路径组件连接成完整路径。如果某个参数是绝对路径或(在 Windows 上)具有与前面路径的连接计算出的驱动器不匹配的驱动器规范,则丢弃先前的组件。
关于 Windows 的说明,由于每个驱动器都有当前目录,joinpath("c:", "foo") 表示相对于驱动器 "c:" 的当前目录的路径,因此这等于 "c:foo",而不是 "c:\foo"。此外,joinpath 将其视为非绝对路径,并忽略驱动器字母的大小写,因此 joinpath("C:\A","c:b") = "C:\A\b"。
示例
julia> joinpath("/home/myuser", "example.jl")
"/home/myuser/example.jl"julia> joinpath(["/home/myuser", "example.jl"])
"/home/myuser/example.jl"Base.Filesystem.abspath — Functionabspath(path::AbstractString) -> String通过在必要时添加当前目录,将路径转换为绝对路径。还会像 normpath 一样规范化路径。
示例
如果您在一个名为 JuliaExample 的目录中,并且您使用的数据相对于 JuliaExample 目录在上面两级,您可以写:
abspath("../../data")这将给出类似 "/home/JuliaUser/data/" 的路径。
另请参见 joinpath,pwd,expanduser。
abspath(path::AbstractString, paths::AbstractString...) -> String通过将一组路径连接在一起并在必要时添加当前目录,将其转换为绝对路径。等价于 abspath(joinpath(path, paths...))。
Base.Filesystem.normpath — Functionnormpath(path::AbstractString) -> String规范化路径,移除 "." 和 ".." 条目,并将 "/" 更改为系统的标准路径分隔符。
示例
julia> normpath("/home/myuser/../example.jl")
"/home/example.jl"
julia> normpath("Documents/Julia") == joinpath("Documents", "Julia")
truenormpath(path::AbstractString, paths::AbstractString...) -> String通过将一组路径连接在一起并删除“.”和“..”条目,将其转换为规范路径。等效于 normpath(joinpath(path, paths...))。
Base.Filesystem.realpath — Functionrealpath(path::AbstractString) -> String通过展开符号链接并删除“.”和“..”条目来规范化路径。在不区分大小写且保留大小写的文件系统(通常是 Mac 和 Windows)上,将返回路径的存储大小写。
(如果 path 在文件系统中不存在,此函数会抛出异常。)
Base.Filesystem.relpath — Functionrelpath(path::AbstractString, startpath::AbstractString = ".") -> String返回相对于当前目录或可选起始目录的 path 的相对文件路径。这是一个路径计算:不访问文件系统以确认 path 或 startpath 的存在或性质。
在 Windows 上,路径的每个部分都应用大小写敏感性,除了驱动器字母。如果 path 和 startpath 指向不同的驱动器,则返回 path 的绝对路径。
Base.Filesystem.expanduser — Functionexpanduser(path::AbstractString) -> AbstractString在 Unix 系统上,将路径开头的波浪号字符替换为当前用户的主目录。
另见: contractuser.
Base.Filesystem.contractuser — Functioncontractuser(path::AbstractString) -> AbstractString在 Unix 系统中,如果路径以 homedir() 开头,则用波浪号字符替换它。
另请参见: expanduser.
Base.Filesystem.samefile — Functionsamefile(path_a::AbstractString, path_b::AbstractString)检查路径 path_a 和 path_b 是否指向同一个现有的文件或目录。
Base.Filesystem.splitdir — Functionsplitdir(path::AbstractString) -> (AbstractString, AbstractString)将路径拆分为目录名和文件名的元组。
示例
julia> splitdir("/home/myuser")
("/home", "myuser")Base.Filesystem.splitdrive — Functionsplitdrive(path::AbstractString) -> (AbstractString, AbstractString)在Windows上,将路径分割为驱动器字母部分和路径部分。在Unix系统中,第一个组件始终为空字符串。
Base.Filesystem.splitext — Functionsplitext(path::AbstractString) -> (String, String)如果路径的最后一个组件包含一个或多个点,则将路径拆分为最后一个点之前的所有内容和包括点及其后面的所有内容。否则,返回未修改的参数元组和空字符串。“splitext”是“split extension”的缩写。
示例
julia> splitext("/home/myuser/example.jl")
("/home/myuser/example", ".jl")
julia> splitext("/home/myuser/example.tar.gz")
("/home/myuser/example.tar", ".gz")
julia> splitext("/home/my.user/example")
("/home/my.user/example", "")Base.Filesystem.splitpath — Functionsplitpath(path::AbstractString) -> Vector{String}将文件路径拆分为所有路径组件。这是 joinpath 的反操作。返回一个子字符串数组,每个目录或文件在路径中都有一个,包括根目录(如果存在)。
此函数至少需要 Julia 1.1。
示例
julia> splitpath("/home/myuser/example.jl")
4-element Vector{String}:
 "/"
 "home"
 "myuser"
 "example.jl"