檔案系統
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
為 false 時,readdir
僅傳回目錄中的名稱;當 join
為 true 時,它會為每個 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)
使用名稱 dst
建立現有來源檔案 src
的硬連結。目的地 dst
不得存在。
另請參閱:symlink
。
此方法已新增至 Julia 1.8。
Base.Filesystem.symlink
— 函數symlink(target::AbstractString, link::AbstractString; dir_target = false)
使用名稱 link
建立指向 target
的符號連結。
在 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
— 函式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
從指定的網址下載檔案,並儲存到位置 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
我們可以看到 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
選項控制暫存檔案是否在程序結束時自動刪除。
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
是 socket,傳回 true
;否則傳回 false
。
Base.Filesystem.issticky
— 函數issticky(path) -> Bool
如果 path
已設定 sticky 位元,傳回 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"