Filesystem

Base.readMethod
read(filename::AbstractString)

ファイルの全内容を Vector{UInt8} として読み込みます。

read(filename::AbstractString, String)

ファイルの全内容を文字列として読み込みます。

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

ファイルを開いてその内容を読み込みます。argsread に渡されます:これは open(io->read(io, args...), filename) と同等です。

source
Base.writeMethod
write(filename::AbstractString, content)

contentの標準的なバイナリ表現をファイルに書き込みます。ファイルがまだ存在しない場合は作成され、存在する場合は上書きされます。

ファイルに書き込まれたバイト数を返します。

source
Base.Filesystem.pwdFunction
pwd() -> String

現在の作業ディレクトリを取得します。

関連: cd, tempdir.

julia> pwd()
"/home/JuliaUser"

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

julia> pwd()
"/home/JuliaUser/Projects/julia"
source
Base.Filesystem.cdMethod
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"
source
Base.Filesystem.cdMethod
cd(f::Function, dir::AbstractString=homedir())

一時的に現在の作業ディレクトリを dir に変更し、関数 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"
source
Base.Filesystem.readdirFunction
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.

Julia 1.4

joinsort のキーワード引数は少なくとも Julia 1.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"
source
Base.Filesystem.walkdirFunction
walkdir(dir = pwd(); topdown=true, follow_symlinks=false, onerror=throw)

ディレクトリのツリーを歩くイテレータを返します。

イテレータは (path, dirs, files) を含むタプルを返します。各イテレーションで path はツリー内の次のディレクトリに変わり、dirsfiles は現在の path ディレクトリ内のディレクトリとファイルを含むベクターになります。ディレクトリツリーは上から下へまたは下から上へとトラバースできます。walkdir または statIOError に遭遇した場合、デフォルトではエラーを再スローします。カスタムエラーハンドリング関数は onerror キーワード引数を通じて提供できます。onerror は引数として IOError を受け取ります。返されるイテレータは状態を持つため、繰り返しアクセスされると、各アクセスは前回の続きから再開されます。これは Iterators.Stateful のようです。

関連情報: readdir.

Julia 1.12

デフォルトのディレクトリとして pwd() が追加されたのは Julia 1.12 です。

for (path, dirs, files) in walkdir(".")
    println("Directories in $path")
    for dir in dirs
        println(joinpath(path, dir)) # ディレクトリへのパス
    end
    println("Files in $path")
    for file in files
        println(joinpath(path, file)) # ファイルへのパス
    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[])
source
Base.Filesystem.mkdirFunction
mkdir(path::AbstractString; mode::Unsigned = 0o777)

名前 path の新しいディレクトリを作成し、権限 mode を設定します。mode はデフォルトで 0o777 で、現在のファイル作成マスクによって変更されます。この関数は一度に1つのディレクトリしか作成しません。ディレクトリがすでに存在する場合や、中間ディレクトリのいくつかが存在しない場合、この関数はエラーをスローします。すべての必要な中間ディレクトリを作成する関数については mkpath を参照してください。path を返します。

julia> mkdir("testingdir")
"testingdir"

julia> cd("testingdir")

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

必要に応じてpath内のすべての中間ディレクトリを作成します。ディレクトリはmodeの権限で作成され、デフォルトは0o777で、現在のファイル作成マスクによって変更されます。mkdirとは異なり、mkpathpath(またはその一部)がすでに存在していてもエラーを返しません。ただし、path(またはその一部)が既存のファイルを指している場合はエラーが発生します。pathを返します。

pathにファイル名が含まれている場合は、ファイル名を使用してディレクトリを作成しないようにmkpath(dirname(path))を使用することをお勧めします。

julia> cd(mktempdir())

julia> mkpath("my/test/dir") # 三つのディレクトリを作成
"my/test/dir"

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

julia> cd("my")

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

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

julia> mkpath("intermediate_dir/actually_a_directory.txt") # 二つのディレクトリを作成
"intermediate_dir/actually_a_directory.txt"

julia> isdir("intermediate_dir/actually_a_directory.txt")
true

julia> mkpath("my/test/dir/") # 元の`path`を返す
"my/test/dir/"
source
Base.Filesystem.hardlinkFunction
hardlink(src::AbstractString, dst::AbstractString)

既存のソースファイル src に対して、名前 dst のハードリンクを作成します。宛先 dst は存在してはいけません。

関連情報: symlink.

Julia 1.8

このメソッドは Julia 1.8 で追加されました。

source
Base.Filesystem.symlinkFunction
symlink(target::AbstractString, link::AbstractString; dir_target = false)

targetへのシンボリックリンクをlinkという名前で作成します。

Windowsでは、シンボリックリンクは明示的にディレクトリを参照するかどうかを宣言する必要があります。targetがすでに存在する場合、デフォルトではlinkのタイプは自動的に検出されますが、targetが存在しない場合、この関数はdir_targettrueに設定されていない限り、ファイルシンボリックリンクを作成することがデフォルトとなります。ユーザーがdir_targetを設定した場合でも、targetが存在しファイルである場合、ディレクトリシンボリックリンクは作成されますが、シンボリックリンクの解決は失敗します。これは、ユーザーがディレクトリが作成される前にdir_targetfalseに設定してsymlink()を呼び出してファイルシンボリックリンクを作成した場合と同様です。

さらに、Windowsではリンクを作成する方法が2つあります。シンボリックリンクとジャンクションポイントです。ジャンクションポイントはわずかに効率的ですが、相対パスをサポートしていないため、相対ディレクトリシンボリックリンクが要求される場合(isabspath(target)falseを返す場合)、シンボリックリンクが使用され、それ以外の場合はジャンクションポイントが使用されます。Windowsでシンボリックリンクを作成する際のベストプラクティスは、参照するファイル/ディレクトリがすでに作成された後にのみ作成することです。

関連情報: hardlink.

Note

この関数は、Windows XPなどのソフトシンボリックリンクをサポートしていないオペレーティングシステムではエラーを発生させます。

Julia 1.6

dir_targetキーワード引数はJulia 1.6で追加されました。それ以前は、Windows上の存在しないパスへのシンボリックリンクは常にファイルシンボリックリンクであり、ディレクトリへの相対シンボリックリンクはサポートされていませんでした。

source
Base.Filesystem.readlinkFunction
readlink(path::AbstractString) -> String

シンボリックリンク path が指すターゲットの場所を返します。

source
Base.Filesystem.chmodFunction
chmod(path::AbstractString, mode::Integer; recursive::Bool=false)

pathの権限モードをmodeに変更します。現在サポートされているのは整数のmode(例:0o777)のみです。recursive=trueで、かつpathがディレクトリの場合、そのディレクトリ内のすべての権限が再帰的に変更されます。pathを返します。

Note

Julia 1.6以前は、Windows上でファイルシステムACLを正しく操作できなかったため、ファイルの読み取り専用ビットのみを設定していました。現在はACLを操作できるようになりました。

source
Base.Filesystem.chownFunction
chown(path::AbstractString, owner::Integer, group::Integer=-1)

pathの所有者および/またはグループをownerおよび/またはgroupに変更します。ownerまたはgroupに入力された値が-1の場合、対応するIDは変更されません。現在、整数のownergroupのみがサポートされています。pathを返します。

source
Base.Libc.RawFDType
RawFD

ネイティブOSファイルディスクリプタをラップするプリミティブ型です。RawFDは、基盤となるファイルに関する情報を発見するためにstatのようなメソッドに渡すことができ、ストリームを開くためにも使用でき、RawFDはストリームを支えるOSファイルを説明します。

source
Base.statFunction
stat(path)
stat(path_elements...)

ファイルに関する情報を含む構造体を返します。複数の引数が与えられた場合、それらはjoinpathによって結合されます。

構造体のフィールドは次の通りです:

名前説明
descUnion{String, Base.OS_HANDLE}パスまたはOSファイルディスクリプタ
sizeInt64ファイルのサイズ(バイト単位)
deviceUIntファイルを含むデバイスのID
inodeUIntファイルのinode番号
modeUIntファイルの保護モード
nlinkIntファイルへのハードリンクの数
uidUIntファイルの所有者のユーザーID
gidUIntファイル所有者のグループID
rdevUIntこのファイルがデバイスを参照している場合、それが参照するデバイスのID
blksizeInt64ファイルのためのファイルシステムの推奨ブロックサイズ
blocksInt64割り当てられた512バイトブロックの数
mtimeFloat64ファイルが最後に変更されたときのUnixタイムスタンプ
ctimeFloat64ファイルのメタデータが変更されたときのUnixタイムスタンプ

```

source
Base.Filesystem.diskstatFunction
diskstat(path=pwd())

pathで指し示されるファイルまたはディレクトリを含むディスクに関するバイト単位の統計を返します。引数が渡されない場合は、現在の作業ディレクトリを含むディスクに関する統計が返されます。

Julia 1.8

このメソッドはJulia 1.8で追加されました。

source
Base.Filesystem.lstatFunction
lstat(path)
lstat(path_elements...)

statと同様ですが、シンボリックリンクの場合は、参照先のファイルではなく、リンク自体の情報を取得します。

この関数は、ファイルオブジェクトやファイルディスクリプタではなく、ファイルパスに対して呼び出す必要があります。

source
Base.Filesystem.ctimeFunction
ctime(path)
ctime(path_elements...)
ctime(stat_struct)

ファイルのメタデータが最後に変更された時刻のUnixタイムスタンプを返します。これは、pathで指定されたファイルのメタデータ、またはファイルディスクリプタstat_structによって示される最後に変更されたメタデータのタイムスタンプです。

stat(path).ctimeまたはstat_struct.ctimeに相当します。

source
Base.Filesystem.mtimeFunction
mtime(path)
mtime(path_elements...)
mtime(stat_struct)

指定された path のファイルが最後に変更されたときの Unix タイムスタンプを返します。または、ファイルディスクリプタ stat_struct によって示された最後の変更タイムスタンプを返します。

stat(path).mtime または stat_struct.mtime と同等です。

source
Base.Filesystem.filemodeFunction
filemode(path)
filemode(path_elements...)
filemode(stat_struct)

pathにあるファイルのモード、またはファイルディスクリプタstat_structによって示されるモードを返します。

stat(path).modeまたはstat_struct.modeに相当します。

source
Base.filesizeFunction
filesize(path)
filesize(path_elements...)
filesize(stat_struct)

pathにあるファイルのサイズ、またはファイルディスクリプタstat_structによって示されるサイズを返します。

stat(path).sizeまたはstat_struct.sizeと同等です。

source
Base.Filesystem.upermFunction
uperm(path)
uperm(path_elements...)
uperm(stat_struct)

pathまたはファイルディスクリプタstat_structに対するファイルの所有者権限のビットフィールドを返します。

説明
01実行権限
02書き込み権限
04読み取り権限

ビットフィールドが返されるということは、権限が読み取り+書き込みの場合、ビットフィールドは"110"となり、これは10進数の値0+2+4=6に対応します。これは返されたUInt8値の印刷に反映されます。

他にgpermおよびopermも参照してください。

julia> touch("dummy_file");  # 内容のないテストファイルを作成

julia> uperm("dummy_file")
0x06

julia> bitstring(ans)
"00000110"

julia> has_read_permission(path) = uperm(path) & 0b00000100 != 0;  # ビットマスクを使用して特定のビットをチェック

julia> has_read_permission("dummy_file")
true

julia> rm("dummy_file")     # テストファイルをクリーンアップ
source
Base.Filesystem.gpermFunction
gperm(path)
gperm(path_elements...)
gperm(stat_struct)

upermと似ていますが、ファイルを所有するグループの権限を取得します。

他にopermも参照してください。

source
Base.Filesystem.opermFunction
operm(path)
operm(path_elements...)
operm(stat_struct)

upermと同様ですが、ファイルを所有していないか、ファイルを所有するグループのメンバーでない人のための権限を取得します。

関連情報としてgpermも参照してください。

source
Base.Filesystem.cpFunction
cp(src::AbstractString, dst::AbstractString; force::Bool=false, follow_symlinks::Bool=false)

srcからdstにファイル、リンク、またはディレクトリをコピーします。force=trueの場合、最初に既存のdstを削除します。

follow_symlinks=falseの場合、srcがシンボリックリンクであれば、dstはシンボリックリンクとして作成されます。follow_symlinks=truesrcがシンボリックリンクの場合、dstsrcが指すファイルまたはディレクトリのコピーになります。dstを返します。

Note

cp関数はcp Unixコマンドとは異なります。cp関数は常にdstがファイルであると仮定して動作しますが、コマンドはdstがディレクトリかファイルかによって異なる動作をします。dstがディレクトリのときにforce=trueを使用すると、dstディレクトリ内のすべての内容が失われ、dstsrcの内容を持つファイルになります。

source
Base.downloadFunction
download(url::AbstractString, [path::AbstractString = tempname()]) -> path

指定されたurlからファイルをダウンロードし、pathに保存します。指定されていない場合は、一時的なパスに保存されます。ダウンロードしたファイルのパスを返します。

Note

Julia 1.6以降、この関数は非推奨であり、Downloads.downloadの薄いラッパーに過ぎません。新しいコードでは、この関数を呼び出すのではなく、直接その関数を使用するべきです。

source
Base.Filesystem.mvFunction
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");
Note

mv関数はmv Unixコマンドとは異なります。mv関数はデフォルトでdstが存在する場合にエラーを返しますが、コマンドはデフォルトで既存のdstファイルを削除します。また、mv関数は常にdstがファイルであると仮定して動作しますが、コマンドはdstがディレクトリかファイルかによって異なる動作をします。dstがディレクトリのときにforce=trueを使用すると、dstディレクトリ内のすべての内容が失われ、dstsrcの内容を持つファイルになります。

source
Base.Filesystem.renameFunction
Base.rename(oldpath::AbstractString, newpath::AbstractString)

oldpathからnewpathにファイルまたはディレクトリの名前を変更します。newpathが既存のファイルまたは空のディレクトリである場合は、置き換えられる可能性があります。Unixでのrename(2)に相当します。パスに"\0"が含まれている場合はArgumentErrorをスローします。他の失敗の場合はIOErrorをスローします。newpathを返します。

これはmvを実装するために使用される低レベルのファイルシステム操作です。

oldpathnewpathが異なるディレクトリにある場合、OS固有の制限が適用されることがあります。

現在、Windowsではいくつかの動作の違いがあり、将来のリリースで解決される可能性があります。具体的には、現在のWindowsでは:

  1. oldpathまたはnewpathが開いているファイルの場合、renameは失敗します。
  2. newpathが既存のディレクトリの場合、renameは失敗します。
  3. newpathがファイルでoldpathがディレクトリの場合、renameは成功する可能性があります。
  4. newpathへのハードリンクである場合、renameoldpathを削除する可能性があります。

参照:mv

Julia 1.12

このメソッドはJulia 1.12で公開されました。

source
Base.Filesystem.rmFunction
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:
[...]
source
Base.Filesystem.touchFunction
Base.touch(::Pidfile.LockMonitor)

ロックの mtime を更新して、それがまだ新しいことを示します。

mkpidlock コンストラクタの refresh キーワードも参照してください。

source
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

mtimetouchによって変更されたことがわかります。

source
Base.Filesystem.tempnameFunction
tempname(parent=tempdir(); cleanup=true, suffix="") -> String

一時ファイルのパスを生成します。この関数はパスのみを返し、ファイルは作成されません。パスは一意である可能性が高いですが、tempnameへの2つの同時呼び出しが同じファイル名を生成する非常に遠い可能性のため、これを保証することはできません。名前は、tempnameへの呼び出し時に既に存在するすべてのファイルとは異なることが保証されています。

引数なしで呼び出すと、一時名はシステムの一時ディレクトリにある一時名への絶対パスになります。parentディレクトリ引数が指定された場合、一時パスはそのディレクトリ内になります。サフィックスが指定された場合、tempnameはそのサフィックスで終わり、そのサフィックスでの一意性がテストされます。

cleanupオプションは、プロセスが終了する際に返されたパスを自動的に削除しようとするかどうかを制御します。tempname関数は返された場所にファイルやディレクトリを作成しないため、そこにファイルやディレクトリを作成しない限り、クリーンアップするものはありません。もし作成した場合、cleanuptrueであれば、プロセス終了時に削除されます。

Julia 1.4

parentおよびcleanup引数は1.4で追加されました。Julia 1.4以前では、tempnameのパスはプロセス終了時にクリーンアップされることはありませんでした。

Julia 1.12

suffixキーワード引数はJulia 1.12で追加されました。

Warning

これにより、別のプロセスが同じファイル名を取得し、あなたが作成する前にファイルを作成することでセキュリティホールが生じる可能性があります。これが懸念される場合は、JL_O_EXCLでファイルを開いてください。また、mktemp()を使用することも推奨されます。

source
Base.Filesystem.tempdirFunction
tempdir()

一時ディレクトリのパスを取得します。Windowsでは、tempdir()は順序付きリストTMPTEMPUSERPROFILEで見つかった最初の環境変数を使用します。他のすべてのオペレーティングシステムでは、tempdir()は順序付きリストTMPDIRTMPTEMPTEMPDIRで見つかった最初の環境変数を使用します。これらのいずれも見つからない場合、パス"/tmp"が使用されます。

source
Base.Filesystem.mktempMethod
mktemp(parent=tempdir(); cleanup=true) -> (path, io)

(path, io)を返します。ここで、pathparent内の新しい一時ファイルのパスであり、ioはこのパスのオープンファイルオブジェクトです。cleanupオプションは、プロセスが終了したときに一時ファイルが自動的に削除されるかどうかを制御します。

Julia 1.3

cleanupキーワード引数はJulia 1.3で追加されました。関連して、1.3以降、Juliaプロセスが終了する際にmktempによって作成された一時パスが削除されます。ただし、cleanupが明示的にfalseに設定されている場合は除きます。

source
Base.Filesystem.mktempdirMethod
mktempdir(parent=tempdir(); prefix="jl_", cleanup=true) -> path

指定されたprefixとランダムなサフィックスから構成された名前を持つ一時ディレクトリをparentディレクトリ内に作成し、そのパスを返します。さらに、一部のプラットフォームでは、prefix内の末尾の'X'文字がランダムな文字に置き換えられる場合があります。parentが存在しない場合は、エラーをスローします。cleanupオプションは、プロセスが終了したときに一時ディレクトリが自動的に削除されるかどうかを制御します。

Julia 1.2

prefixキーワード引数はJulia 1.2で追加されました。

Julia 1.3

cleanupキーワード引数はJulia 1.3で追加されました。関連して、1.3以降、Juliaプロセスが終了する際にmktempdirによって作成された一時パスが削除されます。ただし、cleanupが明示的にfalseに設定されている場合は除きます。

See also: mktemp, mkdir.

source
Base.Filesystem.mktempdirMethod
mktempdir(f::Function, parent=tempdir(); prefix="jl_")

関数 fmktempdir(parent; prefix) の結果に適用し、完了後に一時ディレクトリとそのすべての内容を削除します。

関連情報: mktemp, mkdir.

Julia 1.2

prefix キーワード引数は Julia 1.2 で追加されました。

source
Base.Filesystem.isblockdevFunction
isblockdev(path) -> Bool
isblockdev(path_elements...) -> Bool
isblockdev(stat_struct) -> Bool

パス path またはファイルディスクリプタ stat_struct がブロックデバイスを参照している場合は true を返し、それ以外の場合は false を返します。

source
Base.Filesystem.ischardevFunction
ischardev(path) -> Bool
ischardev(path_elements...) -> Bool
ischardev(stat_struct) -> Bool

パス path またはファイルディスクリプタ stat_struct がキャラクタデバイスを参照している場合は true を返し、それ以外の場合は false を返します。

source
Base.Filesystem.isdirFunction
isdir(path) -> Bool
isdir(path_elements...) -> Bool

pathがディレクトリを指している場合はtrueを返し、それ以外の場合はfalseを返します。

julia> isdir(homedir())
true

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

他にisfileispathも参照してください。

source
Base.Filesystem.isfifoFunction
isfifo(path) -> Bool
isfifo(path_elements...) -> Bool
isfifo(stat_struct) -> Bool

pathのファイルまたはファイルディスクリプタstat_structがFIFOであればtrueを返し、それ以外の場合はfalseを返します。

source
Base.Filesystem.isfileFunction
isfile(path) -> Bool
isfile(path_elements...) -> 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

他に isdirispath も参照してください。

source
Base.Filesystem.islinkFunction
islink(path) -> Bool
islink(path_elements...) -> Bool

pathがシンボリックリンクを指している場合はtrueを返し、それ以外の場合はfalseを返します。

source
Base.Filesystem.ismountFunction
ismount(path) -> Bool
ismount(path_elements...) -> Bool

pathがマウントポイントであればtrueを返し、それ以外の場合はfalseを返します。

source
Base.Filesystem.ispathFunction
ispath(path) -> Bool
ispath(path_elements...) -> Bool

pathに有効なファイルシステムエンティティが存在する場合はtrueを返し、そうでない場合はfalseを返します。

これはisfileisdirなどの一般化です。

source
Base.Filesystem.issetgidFunction
issetgid(path) -> Bool
issetgid(path_elements...) -> Bool
issetgid(stat_struct) -> Bool

pathにあるファイルまたはファイルディスクリプタstat_structにsetgidフラグが設定されている場合はtrueを返し、そうでない場合はfalseを返します。

source
Base.Filesystem.issetuidFunction
issetuid(path) -> Bool
issetuid(path_elements...) -> Bool
issetuid(stat_struct) -> Bool

pathにあるファイルまたはファイルディスクリプタstat_structにsetuidフラグが設定されている場合はtrueを返し、そうでない場合はfalseを返します。

source
Base.Filesystem.issocketFunction
issocket(path) -> Bool
issocket(path_elements...) -> Bool

path がソケットを指している場合は true を返し、それ以外の場合は false を返します。

source
Base.Filesystem.isstickyFunction
issticky(path) -> Bool
issticky(path_elements...) -> Bool
issticky(stat_struct) -> Bool

pathにあるファイルまたはファイルディスクリプタstat_structにスティッキービットが設定されている場合はtrueを返し、それ以外の場合はfalseを返します。

source
Base.Filesystem.homedirFunction
homedir() -> String

現在のユーザーのホームディレクトリを返します。

Note

homedirlibuvuv_os_homedir を介してホームディレクトリを決定します。詳細については(環境変数を介してホームディレクトリを指定する方法など)、uv_os_homedir ドキュメントを参照してください。

他にも Sys.username を参照してください。

source
Base.Filesystem.dirnameFunction
dirname(path::AbstractString) -> String

パスのディレクトリ部分を取得します。パスの末尾の文字('/' または '\')はパスの一部としてカウントされます。

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

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

他にも basename を参照してください。

source
Base.Filesystem.basenameFunction
basename(path::AbstractString) -> String

パスのファイル名部分を取得します。

Note

この関数はUnixのbasenameプログラムとはわずかに異なり、末尾のスラッシュは無視されます。つまり、$ basename /foo/bar/barを返しますが、Juliaのbasenameは空の文字列""を返します。

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

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

他にdirnameを参照してください。

source
Base.Filesystem.isabspathFunction
isabspath(path::AbstractString) -> Bool

パスが絶対パスであるかどうかを判断します(ルートディレクトリから始まる)。

julia> isabspath("/home")
true

julia> isabspath("home")
false
source
Base.Filesystem.isdirpathFunction
isdirpath(path::AbstractString) -> Bool

パスがディレクトリを指しているかどうかを判断します(例えば、パスセパレータで終わる場合)。

julia> isdirpath("/home")
false

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

一連のパスを結合し、必要に応じて現在のディレクトリを追加することで、絶対パスに変換します。abspath(joinpath(path, paths...))と同等です。

source
abspath(path::AbstractString) -> String

現在のディレクトリを必要に応じて追加することで、パスを絶対パスに変換します。また、normpathのようにパスを正規化します。

JuliaExampleというディレクトリにいる場合、使用しているデータがJuliaExampleディレクトリから2階層上にある場合、次のように書くことができます。

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

これにより、"/home/JuliaUser/data/"のようなパスが得られます。

他にもjoinpathpwdexpanduserを参照してください。

source
Base.Filesystem.normpathFunction
normpath(path::AbstractString, paths::AbstractString...) -> String

一連のパスを結合して正規化されたパスに変換し、「.」および「..」のエントリを削除します。normpath(joinpath(path, paths...))と同等です。

source
normpath(path::AbstractString) -> String

パスを正規化し、"."および".."のエントリを削除し、"/"をシステムの標準パス区切り文字に変更します。

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

julia> normpath("Documents/Julia") == joinpath("Documents", "Julia")
true
source
Base.Filesystem.realpathFunction
realpath(path::AbstractString) -> String

シンボリックリンクを展開し、"."および".."エントリを削除することによってパスを正規化します。大文字と小文字を区別しない大文字小文字を保持するファイルシステム(通常はMacおよびWindows)では、パスのためにファイルシステムに保存された大文字小文字が返されます。

(この関数は、pathがファイルシステムに存在しない場合に例外をスローします。)

source
Base.Filesystem.relpathFunction
relpath(path::AbstractString, startpath::AbstractString = ".") -> String

path から現在のディレクトリまたはオプションの開始ディレクトリからの相対ファイルパスを返します。これはパス計算です:ファイルシステムにアクセスして path または startpath の存在や性質を確認することはありません。

Windows では、ドライブレターを除くパスのすべての部分に対して大文字と小文字の区別が適用されます。pathstartpath が異なるドライブを指している場合、path の絶対パスが返されます。

source
Base.Filesystem.expanduserFunction
expanduser(path::AbstractString) -> AbstractString

Unixシステムでは、パスの先頭にあるチルダ文字を現在のユーザーのホームディレクトリに置き換えます。

参照: contractuser.

source
Base.Filesystem.contractuserFunction
contractuser(path::AbstractString) -> AbstractString

Unixシステムでは、パスが homedir() で始まる場合、それをチルダ文字に置き換えます。

参照: expanduser.

source
Base.Filesystem.samefileFunction
samefile(path_a, path_b)

path_apath_b が同じ既存のファイルまたはディレクトリを指しているかどうかを確認します。

source
Base.Filesystem.splitdirFunction
splitdir(path::AbstractString) -> (AbstractString, AbstractString)

パスをディレクトリ名とファイル名のタプルに分割します。

julia> splitdir("/home/myuser")
("/home", "myuser")
source
Base.Filesystem.splitdriveFunction
splitdrive(path::AbstractString) -> (AbstractString, AbstractString)

Windowsでは、パスをドライブレター部分とパス部分に分割します。Unixシステムでは、最初のコンポーネントは常に空の文字列です。

source
Base.Filesystem.splitextFunction
splitext(path::AbstractString) -> (String, String)

パスの最後のコンポーネントに1つ以上のドットが含まれている場合、パスを最後のドットの前のすべての部分とドットを含むその後のすべての部分に分割します。そうでない場合は、引数を変更せずにタプルと空の文字列を返します。"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", "")
source
Base.Filesystem.splitpathFunction
splitpath(path::AbstractString) -> Vector{String}

ファイルパスをすべてのパスコンポーネントに分割します。これは joinpath の逆です。パス内の各ディレクトリまたはファイルに対して1つのサブストリングを含む配列を返し、ルートディレクトリが存在する場合はそれも含まれます。

Julia 1.1

この関数は少なくともJulia 1.1を必要とします。

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