AnyMath 文档

文件系统

read(filename::AbstractString)

将文件的全部内容读取为 向量{UInt8}.

read(filename::AbstractString, String)

以字符串的形式读取文件的全部内容。

read(filename::AbstractString, args...)

打开文件并读取其内容。 阿格斯 被传递给 讀!:这相当于 打开(io->读取(io,args。..),文件名).

write(filename::AbstractString, content)

编写规范的二进制表示 内容 到一个文件,如果它还不存在,将被创建,如果它确实存在,将被复盖。

返回写入文件的字节数。

pwd() -> String

获取当前工作目录。

请参阅: cd, [医tempdir].

*例子*

julia> pwd()
"/home/JuliaUser"

julia> cd("/home/JuliaUser/Projects/julia")

julia> pwd()
"/home/JuliaUser/Projects/julia"
cd(dir::AbstractString=homedir())

设置当前工作目录。

*例子*

julia> cd("/home/JuliaUser/Projects/julia")

julia> pwd()
"/home/JuliaUser/Projects/julia"

julia> cd()

julia> pwd()
"/home/JuliaUser"
cd(f::Function, dir::AbstractString=homedir())

暂时将当前工作目录更改为 署长,应用功能 f 最后回到原来的目录。

*例子*

julia> pwd()
"/home/JuliaUser"

julia> cd(readdir, "/home/JuliaUser/Projects/julia")
34-element Vector{String}:
 ".circleci"
 ".freebsdci.sh"
 ".git"
 ".gitattributes"
 ".github"
 ⋮
 "test"
 "ui"
 "usr"
 "usr-staging"

julia> pwd()
"/home/JuliaUser"
readdir(dir::AbstractString=pwd();
    join::Bool = false,
    sort::Bool = true,
) -> Vector{String}

返回目录中的名称 署长 或当前工作目录,如果没有给出。 何时 加入 是假的, 雷迪尔 只返回目录中的名称,当 加入 是真的,它返回 连接路径(dir,名称) 对于每个 姓名 这样返回的字符串就是全路径。 如果要获取绝对路径,请调用 雷迪尔 具有绝对目录路径和 加入 设置为true。

默认情况下, 雷迪尔 对它返回的名称列表进行排序。 如果您想跳过对名称进行排序并按照文件系统列出它们的顺序获取它们,则可以使用 readdir(dir,sort=false) 选择退出排序。

请参阅: 步行,步行.

兼容性

朱莉娅1.4 加入排序 关键字参数至少需要Julia1.4。

*例子*

julia> cd("/home/JuliaUser/dev/julia")

julia> readdir()
30-element Vector{String}:
 ".appveyor.yml"
 ".git"
 ".gitattributes"
 ⋮
 "ui"
 "usr"
 "usr-staging"

julia> readdir(join=true)
30-element Vector{String}:
 "/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 Vector{String}:
 ".gitignore"
 "Base.jl"
 "Enums.jl"
 ⋮
 "version_git.sh"
 "views.jl"
 "weakkeydict.jl"

julia> readdir("base", join=true)
145-element Vector{String}:
 "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 Vector{String}:
 "/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"
walkdir(dir = pwd(); topdown=true, follow_symlinks=false, onerror=throw)

返回遍历目录的目录树的迭代器。

迭代器返回一个包含 (路径,dirs,文件). 每次迭代 路径 将更改到树中的下一个目录;然后 迪尔斯档案 将是包含当前目录和文件的向量 路径 目录。 目录树可以自上而下或自下而上遍历。 如果 步行,步行统计资料 遇到a IOError 它会在默认情况下重新抛出错误。 可以通过以下方式提供自定义错误处理功能 n.错误,错误 关键字参数。 n.错误,错误 用一个 IOError 作为论据。 返回的迭代器是有状态的,因此当重复访问时,每个访问将在最后一次离开的地方恢复,例如 迭代器。有状态的.

请参阅: 雷迪尔.

兼容性

朱莉娅1.12 残疾人士() 作为默认目录是在Julia1.12中添加的。

*例子*

for (path, dirs, files) in walkdir(".")
    println("Directories in $path")
    for dir in dirs
        println(joinpath(path, dir)) # path to directories
    end
    println("Files in $path")
    for file in files
        println(joinpath(path, file)) # path to files
    end
end
julia> mkpath("my/test/dir");

julia> itr = walkdir("my");

julia> (path, dirs, files) = first(itr)
("my", ["test"], String[])

julia> (path, dirs, files) = first(itr)
("my/test", ["dir"], String[])

julia> (path, dirs, files) = first(itr)
("my/test/dir", String[], String[])
mkdir(path::AbstractString; mode::Unsigned = 0o777)

用名称创建一个新目录 路径 和权限 模式. 模式 默认值为 0o777,由当前文件创建掩码修改。 此函数永远不会创建多个目录。 如果目录已经存在,或者某些中间目录不存在,则此函数会引发错误。 见 mkpath用于创建所有必需的中间目录的函数。 回来吧 路径.

*例子*

julia> mkdir("testingdir")
"testingdir"

julia> cd("testingdir")

julia> pwd()
"/home/JuliaUser/testingdir"
mkpath(path::AbstractString; mode::Unsigned = 0o777)

路径 根据需要。 目录是用权限创建的 模式 默认为 0o777 并被当前文件创建掩码修改。 不像 mkdir, mkpath 如果没有错误 路径 (或其部分)已经存在。 但是,如果 路径 (或其部分)指向现有文件。 回来吧 路径.

如果 路径 包含您可能想要使用的文件名 mkpath(dirname(path)) 以避免使用文件名创建目录。

*例子*

julia> cd(mktempdir())

julia> mkpath("my/test/dir") # creates three directories
"my/test/dir"

julia> readdir()
1-element Vector{String}:
 "my"

julia> cd("my")

julia> readdir()
1-element Vector{String}:
 "test"

julia>readdir("测试")
1元素向量{String}:
 "署长"

julia>mkpath("intermediate_dir/actually_a_directory。txt")#创建两个目录
"intermediate_dir/actually_a_directory。txt"

julia>isdir("intermediate_dir/actually_a_directory.txt")
真的

julia>mkpath("my/test/dir/")#返回原始 `路径`
"我的/测试/目录/"
hardlink(src::AbstractString, dst::AbstractString)

创建指向现有源文件的硬链接 src公司 带着名字 dst. 目的地, dst,一定不存在。

请参阅: 符号链接.

兼容性

Julia1.8这种方法是在Julia1.8中加入的。

symlink(target::AbstractString, link::AbstractString; dir_target = false)

创建一个符号链接到 目标 带着名字 连结.

在Windows上,符号链接必须显式声明为是否引用目录。 如果 目标 已经存在,默认情况下, 连结 将自动检测,但是,如果 目标 不存在,此函数默认为创建文件符号链接,除非 dir_target 被设置为 真的. 请注意,如果用户设置 dir_target 但是 目标 存在并且是一个文件,仍然会创建一个目录符号链接,但取消引用符号链接将失败,就像用户创建文件符号链接一样(通过调用 符号链接()dir_target 设置为 错误 目录创建之前)并尝试将其取消引用到目录。

此外,在Windows上创建链接有两种方法:符号链接和连接点。 连接点的效率稍高,但不支持相对路径,因此如果请求相对目录符号链接(由 isabspath(目标) 回来了 错误)将使用符号链接,否则将使用连接点。 在Windows上创建符号链接的最佳做法是仅在它们引用的文件/目录已创建后才创建它们。

请参阅: 硬链接.

注意此函数在不支持软符号链接的操作系统(如Windows XP)下引发错误。

兼容性

朱莉娅1.6 dir_target 在Julia1.6中添加了关键字参数。 在此之前,指向windows上不存在的路径的符号链接将始终是文件符号链接,并且不支持指向目录的相对符号链接。

readlink(path::AbstractString) -> String

返回目标位置符号链接 路径 指向。

chmod(path::AbstractString, mode::Integer; recursive::Bool=false)

更改权限模式 路径模式. 只有整数 模式s(例如 0o777)目前支持。 如果 递归=真 路径是一个目录,该目录中的所有权限将被递归地更改。 回来吧 路径.

注意在Julia1.6之前,这并没有正确操作Windows上的文件系统Acl,因此它只会在文件上设置只读位。 它现在能够操作Acl。

chown(path::AbstractString, owner::Integer, group::Integer=-1)

更改业主及/或组 路径业主 和/或 团体. 如果输入的值为 业主团体-1 对应的ID不会改变。 只有整数 业主s和 团体目前支持s。 回来吧 路径.

RawFD

包装本机OS文件描述符的原始类型。 RawFDs可以传递给像这样的方法 统计资料发现有关底层文件的信息,也可用于打开流,与 RawFD 描述支持流的操作系统文件。

stat(path)
stat(path_elements...)

返回一个结构,其字段包含有关文件的信息。 如果给出了多个参数,则它们由 连接路径.

结构的字段是:

姓名 类型 资料描述

desc

工会{String, Base.OS_HANDLE}

路径或OS文件描述符

大小

Int64

文件的大小(以字节为单位)

设备

UInt的

包含文件的设备的ID

inode,inode

UInt的

文件的inode号

模式

UInt的

文件的保护模式

n链接

Int型

文件的硬链接数

uid

UInt的

文件所有者的用户id

吉德

UInt的

文件所有者的组id

rdev,rdev

UInt的

如果此文件引用设备,则它引用的设备的ID

大厦尺寸

Int64

文件系统首选的文件块大小

街区

Int64

分配的512字节块数

m时间

漂浮64

上次修改文件时的Unix时间戳

时间

漂浮64

更改文件元数据时的Unix时间戳

diskstat(path=pwd())

返回有关包含指向的文件或目录的磁盘的统计信息(以字节为单位) 路径. 如果没有传递参数,则返回有关包含当前工作目录的磁盘的统计信息。

兼容性

Julia1.8这种方法是在Julia1.8中加入的。

lstat(path)
lstat(path_elements...)

统计资料,但对于符号链接获取链接本身的信息,而不是它引用的文件。

必须在文件路径而不是文件对象或文件描述符上调用此函数。

ctime(path)
ctime(path_elements...)
ctime(stat_struct)

返回文件的元数据在 路径 被最后修改,或者由文件描述符指示的最后修改的元数据时间戳 stat_结构.

相当于 stat(路径)。时间stat_struct。时间.

mtime(path)
mtime(path_elements...)
mtime(stat_struct)

返回文件在 路径 被最后修改,或由文件描述符指示的最后修改时间戳 stat_结构.

相当于 stat(路径)。m时间stat_struct。m时间.

filemode(path)
filemode(path_elements...)
filemode(stat_struct)

返回位于文件的模式 路径,或文件描述符所指示的模式 stat_结构.

相当于 stat(路径)。模式stat_struct。模式.

filesize(path)
filesize(path_elements...)
filesize(stat_struct)

返回位于 路径,或文件描述符所指示的大小 stat_结构.

相当于 stat(路径)。大小stat_struct。大小.

uperm(path)
uperm(path_elements...)
uperm(stat_struct)

返回文件的所有者权限的位字段 路径 或文件描述符 stat_结构.

价值 资料描述

01

执行权限

02

写权限

04

读取权限

返回位字段的事实意味着如果权限为read+write,则位字段为"110",它映射到0+2+4=6. 这反映在返回的打印中 UInt8 价值。

请参阅 [医柏油]和 操作,操作.

julia> touch("dummy_file");  # Create test-file without contents

julia> uperm("dummy_file")
0x06

julia> bitstring(ans)
"00000110"

julia> has_read_permission(path) = uperm(path) & 0b00000100 != 0;  # Use bit mask to check specific bit

julia> has_read_permission("dummy_file")
true

julia> rm("dummy_file")     # Clean up test-file
gperm(path)
gperm(path_elements...)
gperm(stat_struct)

乌珀姆但获取拥有该文件的组的权限。

请参阅 操作.

operm(path)
operm(path_elements...)
operm(stat_struct)

乌珀姆但获取既不拥有该文件也不是拥有该文件的组的成员的人的权限。

请参阅 [医柏油].

cp(src::AbstractString, dst::AbstractString; force::Bool=false, follow_symlinks::Bool=false)

复制文件、链接或目录 src公司dst. 力=真 将首先删除现有的 dst.

如果 follow_symlinks=false,而 src公司 是符号链接, dst 将创建为符号链接。 如果 follow_symlinks=truesrc公司 是符号链接, dst 将是文件或目录的副本 src公司 指的。 回来吧 dst.

注意 cp/cp 功能不同于 cp/cp Unix命令。 该 cp/cp 函数总是在以下假设下运行: dst 是一个文件,而命令根据是否执行不同的操作 dst 是目录或文件。 使用 力=真 何时 dst 是一个目录将导致丢失的所有内容存在于 dst 目录,以及 dst 将成为一个文件,其中包含 src公司 相反。

download(url::AbstractString, [path::AbstractString = tempname()]) -> path

从给定的url下载文件,将其保存到该位置 路径,或者如果未指定,则临时路径。 返回下载文件的路径。

请注意,自Julia1.6以来,此函数已被弃用,只是一个精简的包装器 下载。下载. 在新代码中,您应该直接使用该函数,而不是调用this。

mv(src::AbstractString, dst::AbstractString; force::Bool=false)

将文件、链接或目录从 src公司dst. 力=真 将首先删除现有的 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");

注意 mv 功能不同于 mv Unix命令。 该 mv 默认情况下,如果 dst 存在,而该命令将删除现有的 dst 默认情况下的文件。 此外, mv 函数总是在以下假设下运行: dst 是一个文件,而命令根据是否执行不同的操作 dst 是目录或文件。 使用 力=真 何时 dst 是一个目录将导致丢失所有存在于 dst 目录,以及 dst 将成为一个文件,其中包含 src公司 相反。

Base.rename(oldpath::AbstractString, newpath::AbstractString)

从以下位置更改文件或目录的名称 老路新路径. 如果 新路径 是一个现有的文件或空目录,它可以被替换。 相当于https://man7.org/linux/man-pages/man2/rename.2.html Unix上的[rename(2)]。 如果一个路径包含一个"\0"抛出一个 [医]争论者. 在其他故障抛出一个 IOError. 回来吧 新路径.

这是用于实现的较低级别的文件系统操作 mv.

以下情况可能适用特定于操作系统的限制 老路新路径 在不同的目录中。

目前,Windows上的行为存在一些差异,可能会在未来的版本中解决。 具体来说,目前在Windows:

  1. 重命名 将失败,如果 老路新路径 打开的文件。

  2. 重命名 将失败,如果 新路径 是现有目录。

  3. 重命名 可能工作,如果 新路径 是一个文件和 老路 是一个目录。

  4. 重命名 可以删除 老路 如果它是一个硬链接到 新路径.

请参阅: mv.

兼容性

Julia1.12此方法在Julia1.12中公开。

rm(path::AbstractString; force::Bool=false, recursive::Bool=false)

删除给定路径下的文件、链接或空目录。 如果 力=真 被传递,不存在的路径不被视为错误。 如果 递归=真 传递并且路径是一个目录,然后递归地删除所有内容。

*例子*

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.touch(::Pidfile.LockMonitor)

更新 m时间 在锁上,表明它仍然是新鲜的.

请参阅 刷新 关键字在 [医mkpid锁]构造函数。

touch(path::AbstractString)
touch(fd::File)

将文件上上次修改的时间戳更新为当前时间。

如果文件不存在,则会创建一个新文件。

回来吧 路径.

*例子*

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

我们可以看到 m时间已被修改 触摸.

tempname(parent=tempdir(); cleanup=true, suffix="") -> String

生成临时文件路径。 此函数只返回路径;不创建文件。 该路径可能是唯一的,但由于两个同时调用到的非常远程的可能性,不能保证这一点 临时名称 生成相同的文件名。 该名称保证与调用时已存在的所有文件不同。 临时名称.

当没有参数调用时,临时名称将是系统临时目录中临时名称的绝对路径,如下所示 tempdir(). 如果一个 家长/家长 给出了目录参数,临时路径将在该目录中。 如果给出后缀,tempname将以该后缀结尾,并测试该后缀的唯一性。

清理工作 option控制进程退出时是否尝试自动删除返回的路径。 请注意, 临时名称 函数不会在返回的位置创建任何文件或目录,因此除非您在那里创建文件或目录,否则没有任何清理。 如果你这样做, 清理工作真的 它将在进程终止时被删除。

兼容性

朱莉娅1.4 家长/家长清理工作 在1.4中添加了参数。 在Julia1.4之前的路径 临时名称 在进程终止时永远不会被清理。

兼容性

朱莉娅1.12 后缀 在Julia1.12中添加了关键字参数。

警告如果另一个进程获得相同的文件名并在您能够之前创建该文件,则这可能会导致安全漏洞。 打开文件 JL_O_EXCL 如果这是一个问题。 使用 mktemp()也建议代替。

tempdir()

获取临时目录的路径。 在Windows上, tempdir() 使用有序列表中找到的第一个环境变量 TMP, 临时工, 用户文件. 在所有其他操作系统上, tempdir() 使用有序列表中找到的第一个环境变量 [医]TMPDIR, TMP, 临时工,而 [医]TEMPDIR. 如果没有找到这些,则路径 "/tmp" 被使用。

mktemp(parent=tempdir(); cleanup=true) -> (path, io)

回来吧 (路径,io),在哪里 路径 是一个新的临时文件的路径 家长/家长伊俄 是此路径的打开文件对象。 该 清理工作 option控制进程退出时是否自动删除临时文件。

兼容性

朱莉娅1.3 清理工作 在Julia1.3中添加了关键字参数。 相关地,从1.3开始,Julia将删除由 mktemp 当Julia进程退出时,除非 清理工作 显式设置为 错误.

mktemp(f::Function, parent=tempdir())

应用函数 f 到的结果 mktemp(家长)并在完成后删除临时文件。

请参阅: mktempdir.

mktempdir(parent=tempdir(); prefix="jl_", cleanup=true) -> path

家长/家长 从给定的目录中构造一个名称的目录 前缀 和随机后缀,并返回其路径。 此外,在某些平台上,任何尾随 'X' 字符 前缀 可以用随机字符替换。 如果 家长/家长 不存在,抛出错误。 该 清理工作 option控制进程退出时是否自动删除临时目录。

兼容性

朱莉娅1.2 前缀 在Julia1.2中添加了关键字参数。

兼容性

朱莉娅1.3 清理工作 在Julia1.3中添加了关键字参数。 相关地,从1.3开始,Julia将删除由 mktempdir 当Julia进程退出时,除非 清理工作 显式设置为 错误.

请参阅: mktemp, mkdir.

mktempdir(f::Function, parent=tempdir(); prefix="jl_")

应用函数 f 到的结果 mktempdir(父;前缀)并在完成后删除临时目录及其所有内容。

请参阅: mktemp, mkdir.

兼容性

朱莉娅1.2 前缀 在Julia1.2中添加了关键字参数。

isblockdev(path) -> Bool
isblockdev(path_elements...) -> Bool
isblockdev(stat_struct) -> Bool

回来吧 真的 如果路径 路径 或文件描述符 stat_结构 参考块设备, 错误 否则。

ischardev(path) -> Bool
ischardev(path_elements...) -> Bool
ischardev(stat_struct) -> Bool

回来吧 真的 如果路径 路径 或文件描述符 stat_结构 参考字符设备, 错误 否则。

isdir(path) -> Bool
isdir(path_elements...) -> Bool

回来吧 真的 如果 路径 指向目录, 错误 否则。

*例子*

julia> isdir(homedir())
true

julia> isdir("not/a/directory")
false

请参阅 文件;文件ispath.

isfifo(path) -> Bool
isfifo(path_elements...) -> Bool
isfifo(stat_struct) -> Bool

回来吧 真的 如果文件在 路径 或文件描述符 stat_结构 是FIFO, 错误 否则。

isfile(path) -> Bool
isfile(path_elements...) -> Bool

回来吧 真的 如果 路径 指向常规文件, 错误 否则。

*例子*

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

请参阅 伊斯迪尔ispath.

islink(path) -> Bool
islink(path_elements...) -> Bool

回来吧 真的 如果 路径 指向符号链接, 错误 否则。

ismount(path) -> Bool
ismount(path_elements...) -> Bool

回来吧 真的 如果 路径 是挂载点, 错误 否则。

ispath(path) -> Bool
ispath(path_elements...) -> Bool

回来吧 真的 如果有效的文件系统实体存在于 路径,否则返回 错误.

这是对 文件;文件, 伊斯迪尔等。

issetgid(path) -> Bool
issetgid(path_elements...) -> Bool
issetgid(stat_struct) -> Bool

回来吧 真的 如果文件在 路径 或文件描述符 stat_结构 设置setgid标志, 错误 否则。

issetuid(path) -> Bool
issetuid(path_elements...) -> Bool
issetuid(stat_struct) -> Bool

回来吧 真的 如果文件在 路径 或文件描述符 stat_结构 设置setuid标志, 错误 否则。

issocket(path) -> Bool
issocket(path_elements...) -> Bool

回来吧 真的 如果 路径 指向套接字, 错误 否则。

issticky(path) -> Bool
issticky(path_elements...) -> Bool
issticky(stat_struct) -> Bool

回来吧 真的 如果文件在 路径 或文件描述符 stat_结构 设置粘性位, 错误 否则。

homedir() -> String

返回当前用户的主目录。

首页 通过以下方式确定主目录 利布夫'的 uv_os_homedir. 有关详细信息(例如如何通过环境变量指定主目录),请参阅http://docs.libuv.org/en/v1.x/misc.html#c.uv_os_homedir[脧锚脧赂`uv_os_homedir` 文件]。

dirname(path::AbstractString) -> String

获取路径的目录部分。 路径中的尾随字符('/'或")计为路径的一部分。

*例子*

julia> dirname("/home/myuser")
"/home"

julia> dirname("/home/myuser/")
"/home/myuser"

请参阅 基本名称.

basename(path::AbstractString) -> String

获取路径的文件名部分。

注意此函数与Unix略有不同 基本名称 程序,其中尾随斜杠被忽略,即 $basename/foo/bar/ 申报表 酒吧,而 基本名称 在Julia返回一个空字符串 "".

*例子*

julia> basename("/home/myuser/example.jl")
"example.jl"

julia> basename("/home/myuser/")
""

请参阅 迪拉姆.

isabspath(path::AbstractString) -> Bool

确定路径是否为绝对路径(从根目录开始)。

*例子*

julia> isabspath("/home")
true

julia> isabspath("home")
false
isdirpath(path::AbstractString) -> Bool

确定路径是否引用目录(例如,以路径分隔符结尾)。

*例子*

julia> isdirpath("/home")
false

julia> isdirpath("/home/")
true
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("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"
abspath(path::AbstractString, paths::AbstractString...) -> String

通过将一组路径连接在一起并在必要时添加当前目录,将它们转换为绝对路径。 相当于 abpath(joinpath(path,paths...)).

abspath(path::AbstractString) -> String

如果需要,通过添加当前目录将路径转换为绝对路径。 也将路径规范化为 规范路径.

*例子*

如果你在一个名为 朱利亚例子 您正在使用的数据相对于 朱利亚例子 目录,你可以写:

abspath("../../data")

这给出了一条像 "/home/JuliaUser/数据/".

normpath(path::AbstractString, paths::AbstractString...) -> String

将一组路径转换为标准化路径,方法是将它们连接在一起并删除"。"和"。."参赛作品。 相当于 normpath(joinpath(path,paths...)).

normpath(path::AbstractString) -> String

规范化路径,删除"。"和"。."条目和更改"/"为系统的规范路径分隔符。

*例子*

julia> normpath("/home/myuser/../example.jl")
"/home/example.jl"

julia> normpath("Documents/Julia") == joinpath("Documents", "Julia")
true
realpath(path::AbstractString) -> String

通过展开符号链接并删除"来规范路径。"和"。."参赛作品。 在不区分大小写的保留大小写的文件系统(通常是Mac和Windows)上,将返回文件系统存储的路径大小写。

(此函数抛出异常,如果 路径 文件系统中不存在。)

relpath(path::AbstractString, startpath::AbstractString = ".") -> String

返回一个相对的filepath到 路径 从当前目录或从可选的开始目录。 这是一个路径计算:文件系统不被访问以确认 路径开始路径.

在Windows上,区分大小写应用于除驱动器号之外的路径的每个部分。 如果 路径开始路径 参考不同的驱动器,绝对路径 路径 被退回。

expanduser(path::AbstractString) -> AbstractString

在Unix系统上,将路径开头的波浪号字符替换为当前用户的主目录。

请参阅: 合同使用者.

contractuser(path::AbstractString) -> AbstractString

在Unix系统上,如果路径以 首页(),将其替换为波浪号字符。

请参阅: 扩展用户.

samefile(path_a, path_b)

检查路径 路径_apath_b 引用相同的现有文件或目录。

splitdir(path::AbstractString) -> (AbstractString, AbstractString)

将路径拆分为目录名和文件名的元组。

*例子*

julia> splitdir("/home/myuser")
("/home", "myuser")
splitdrive(path::AbstractString) -> (AbstractString, AbstractString)

在Windows上,将路径拆分为驱动器号部分和路径部分。 在Unix系统上,第一个组件始终是空字符串。

splitext(path::AbstractString) -> (String, String)

如果路径的最后一个组件包含一个或多个点,则将路径拆分为最后一个点之前的所有内容以及包括点和点之后的所有内容。 否则,返回未修改的参数和空字符串的元组。 "splitext"是"拆分扩展"的简称。

*例子*

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", "")
splitpath(path::AbstractString) -> Vector{String}

将文件路径拆分为其所有路径组件。 这是相反的 连接路径. 返回子字符串数组,每个子字符串对应路径中的每个目录或文件,包括根目录(如果存在)。

兼容性

Julia1.1此功能至少需要Julia1.1。

*例子*

julia> splitpath("/home/myuser/example.jl")
4-element Vector{String}:
 "/"
 "home"
 "myuser"
 "example.jl"