ファイルシステム
Base.Filesystem.pwd ── 関数
pwd() -> AbstractString
カレントワーキングディレクトリを取得します。
例
julia> pwd()
"/home/JuliaUser"
julia> cd("/home/JuliaUser/Projects/julia")
julia> pwd()
"/home/JuliaUser/Projects/julia"
Base.Filesystem.cd ── メソッド
cd(dir::AbstractString=homedir())
カレントワーキングディレクトリを設定します。
例
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 に含まれる名前を返します。dir が与えられなければカレントワーキングディレクトリが使われます。join が false なら、readdir はディレクトリ内の名前をそのまま返します。join が true なら、各 name に対して joinpath(dir, name) で計算されるフルパスが返り値の配列の要素となります。名前の絶対パスが必要なら、readdir に絶対パスを渡した上で join を true にしてください。
readdir はデフォルトで名前をソートして返します。もしソートせずにシステムが並べる順序で名前が並んだ配列が必要な場合には、readir(dir, sort=false) とすればソートを無効化できます。
キーワード引数 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)
ディレクトリ tree を頂点とするディレクトリツリーを走査する反復子を返します。walkdir が返す反復子は (rootpath, dirs, files) というタプルを生成します。ディレクトリツリーの走査はトップダウン (topdown = true) またはボトムアップ (topdown = false) の順序で行われます。walkdir が SystemError に遭遇すると、デフォルトではエラーが送出されます。キーワード引数 onerror を使えば独自のエラー処理関数を設定できます。onerror が呼ばれるときの引数は SystemError です。
例
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
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 を現在のファイル作成マスクで処理した値です。この関数が二つ以上のディレクトリを作成することは絶対にありません。指定されたディレクトリが既に存在するとき、および中間のディレクトリが存在しないとき、mkdir はエラーを送出します。中間ディレクトリを全て作成する処理は mkpath 関数を使えば行えます。mkdir は path を返します。
例
julia> mkdir("testingdir")
"testingdir"
julia> cd("testingdir")
julia> pwd()
"/home/JuliaUser/testingdir"
Base.Filesystem.mkpath ── 関数
mkpath(path::AbstractString; mode::Unsigned = 0o777)
path に含まれる全てのディレクトリを mode という権限で作成します。mode のデフォルト値は 0o777 を現在のファイル作成マスクで処理した値です。path を返します。
例
julia> mkdir("testingdir")
"testingdir"
julia> cd("testingdir")
julia> pwd()
"/home/JuliaUser/testingdir"
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"
Base.Filesystem.symlink ── 関数
symlink(target::AbstractString, link::AbstractString)
link という名前の target へのシンボリックリンクを作成します。
ソフトシンボリックリンクをサポートしないオペレーティングシステム (Windows XP など) では、この関数はエラーを送出します。
Base.Filesystem.readlink ── 関数
Base.Filesystem.chmod ── 関数
chmod(path::AbstractString, mode::Integer; recursive::Bool=false)
path の権限モードを mode に変更します。整数の mode (0o777 など) だけが現在サポートされます。recursive=true でパスがディレクトリだと、ディレクトリ内に存在するもの全ての権限が再帰的に変更されます。path を返します。
Base.Filesystem.chown ── 関数
chown(path::AbstractString, owner::Integer, group::Integer=-1)
path の所有者 ID を owner に、所有グループ ID を group に変更します。owner あるいは group に -1 を指定すると、対応する ID は変更されません。owner と group が現在サポートするのは整数だけです。path を返します。
Base.Libc.RawFD ── 型
Base.stat ── 関数
stat(file)
ファイルの情報をフィールドに持つ構造体を返します。この関数が返す構造体のフィールドは次の通りです:
| 名前 | 説明 |
|---|---|
size |
ファイルのサイズ (単位はバイト) |
device |
ファイルを含むデバイスの ID |
inode |
ファイルの inode 番号 |
mode |
ファイルの保護モード |
nlink |
ファイルを指すハードリンクの個数 |
uid |
ファイル所有者のユーザー ID |
gid |
ファイル所有者のグループ ID |
rdev |
このファイルがデバイスを指すなら、そのデバイスの ID |
blksize |
ファイルシステムが推奨するファイルのブロックサイズ |
blocks |
アロケートされているファイルのブロック数 |
mtime |
ファイルが最後に変更された時刻の Unix タイムスタンプ |
ctime |
ファイルが作成された時刻の Unix タイムスタンプ |
Base.Filesystem.lstat ── 関数
Base.Filesystem.ctime ── 関数
Base.Filesystem.mtime ── 関数
Base.Filesystem.filemode ── 関数
Base.Filesystem.filesize ── 関数
Base.Filesystem.uperm ── 関数
Base.Filesystem.gperm ── 関数
Base.Filesystem.operm ── 関数
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 を返します。
Base.download ── 関数
download(url::AbstractString, [localfile::AbstractString])
url からファイルをダウンロードし、localfile に保存します。localfile が与えられなければ、download はダウンロードしたファイルをランダムな名前のファイルとして一時ディレクトリに保存します。この関数はファイルのダウンロードで curl, wget, fetch のような外部ツールを使っており、利便性のために提供されます。プロダクションでの利用や細かなオプションが必要な場合には、そういった機能を提供する個別のパッケージを使ってください。
ダウンロードされたファイル名を返します。
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)
path にあるファイル/リンク/空のディレクトリを削除します。force=true だと、パスが存在しなくてもエラーが発生しません。recursive=true で path がディレクトリだと、中に含まれる全てのものが再帰的に削除されます。
例
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: no such file or directory (ENOENT)
Stacktrace:
[...]
Base.Filesystem.touch ── 関数
touch(path::AbstractString)
ファイルの最終更新日時を表すタイムスタンプを現在時刻に更新します。
path というファイルが存在しなければ、新しく作成されます。
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 はプロセス終了時に一時パスを自動的に削除するかどうかを制御します。tampname 関数は返り値の名前をしたファイルやディレクトリを作成しないので、その後ファイルまたはディレクトリを作成しない限り掃除は必要ありません。clean=true にするとプロセスの終了時にこのパスが削除されます。
引数 parent と cleanup は Julia 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 は path に対して開かれたファイルオブジェクトです。キーワード引数 cleanup はプロセス終了時に一時ファイルを自動的に削除するかどうかを制御します。
Base.Filesystem.mktemp ── メソッド
Base.Filesystem.mktempdir ── メソッド
mktempdir(parent=tempdir(); prefix="jl_", cleanup=true) -> path
ディレクトリ parent に一時ディレクトリを作成します。一時ディレクトリのパスは与えられた接頭辞 prefix にランダムな接尾辞を付けたものです。作成されたディレクトリのパスを返します。parent が存在しないときはエラーを送出します。キーワード引数 cleanup はプロセス終了時に一時ファイルを自動的に削除するかどうかを制御します。
Base.Filesystem.mktempdir ── メソッド
mktempdir(f::Function, parent=tempdir(); prefix="jl_")
mktempdir(parent; prefix) の返り値に関数 f を適用し、完了したら一時ファイルを削除します。
Base.Filesystem.isdir ── 関数
Base.Filesystem.isfifo ── 関数
Base.Filesystem.isfile ── 関数
Base.Filesystem.islink ── 関数
Base.Filesystem.ismount ── 関数
Base.Filesystem.ispath ── 関数
Base.Filesystem.issetgid ── 関数
Base.Filesystem.issetuid ── 関数
Base.Filesystem.issocket ── 関数
Base.Filesystem.issticky ── 関数
Base.Filesystem.homedir ── 関数
Base.Filesystem.dirname ── 関数
Base.Filesystem.basename ── 関数
Base.@__FILE__ ── マクロ
@__FILE__ -> AbstractString
マクロの呼び出したコードがあるファイルのパスを表す文字列に展開されます。julia -e <expr> として評価されている場合は空文字列が返り、パーサーからソース情報を取得できない場合は nothing が返ります。
Base.@__DIR__ ── マクロ
@__DIR__ -> AbstractString
マクロの呼び出したコードがあるファイルを含むディレクトリの絶対パスを表す文字列に展開されます。julia -e <expr> として評価されている場合はカレントワーキングディレクトリが返ります。
Base.@__LINE__ ── マクロ
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
パス要素を連結して完全なパスを作成します。引数が絶対パスのとき、および (Windows において) 引数の指定するドライブがそれまでのドライブと一致しないときは、それ以前の引数が無視されます。
Windows では各ドライブにカレントディレクトリが存在するので、joinpath("c:", "foo") はドライブ "c:" におけるカレントディレクトリからの相対パス "c:foo" を表します ("c:\foo" ではありません)。さらに joinpath は "c:foo" のようなパスを絶対でないものとして扱い、ドライブ文字では大文字と小文字を区別しません。例えば joinpath("C:\A","c:b") = "C:\A\b" です。
例
julia> joinpath("/home/myuser", "example.jl")
"/home/myuser/example.jl"
Base.Filesystem.abspath ── 関数
abspath(path::AbstractString) -> String
必要ならカレントディレクトリを付け足すことで、パスを絶対パスに変換します。さらに normpath と同じようにパスを正規化します。
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"
normpath(path::AbstractString, paths::AbstractString...) -> String
複数のパスを連結し、"." と ".." を持たないパスに正規化します。normpath(joinpath(path, paths...)) と等価です。
Base.Filesystem.realpath ── 関数
realpath(path::AbstractString) -> String
シンボリックリンクを展開し、"." と ".." を削除することでパスを正準化します。Mac や Windows のような大文字と小文字を区別せず統一もしないファイルシステムを持つ OS では、ファイルシステムに保存された文字を使ったパスが返ります。
この関数は path がファイルシステムに存在しないとき例外を送出します。
Base.Filesystem.relpath ── 関数
relpath(path::AbstractString, startpath::AbstractString = ".") -> AbstractString
path への相対パスを返します。相対パスの起点は startpath であり、startpath を省略するとカレントディレクトリが使われます。この関数はパスの計算を行うだけです: path や startpath の存在あるいは性質を確認するためにファイルシステムにアクセスすることはありません。
Base.Filesystem.expanduser ── 関数
expanduser(path::AbstractString) -> AbstractString
OS が Unix 系なら、パスの最初にあるチルダ文字を現在のユーザーのホームディレクトリに置き換えます。
Base.Filesystem.splitdir ── 関数
splitdir(path::AbstractString) -> (AbstractString, AbstractString)
パスをディレクトリ名とファイル名からなるタプルに分割します。
例
julia> splitdir("/home/myuser")
("/home", "myuser")
Base.Filesystem.splitdrive ── 関数
splitdrive(path::AbstractString) -> (AbstractString, AbstractString)
OS が Windows なら、パスをドライブ文字とパスに分割します。Unix 系では返り値の第一要素は必ず空文字列です。
Base.Filesystem.splitext ── 関数
splitext(path::AbstractString) -> (AbstractString, AbstractString)
path の最後の要素がドットを含むなら、それより前とそれ以降に path を分割します。パスがドットを含まないなら、path と空文字列からなるタプルを返します。
例
julia> splitext("/home/myuser/example.jl")
("/home/myuser/example", ".jl")
julia> splitext("/home/myuser/example")
("/home/myuser/example", "")
Base.Filesystem.splitpath ── 関数
splitpath(path::AbstractString) -> Vector{String}
ファイルパスをパスの要素に分割します。これは joinpath の逆と言えます。部分文字列の配列を返し、配列の各要素がパス中のディレクトリまたはファイルに対応します。path にルートディレクトリが存在するなら、それも返り値に含まれます。
この関数は Julia 1.1 以降でサポートされます。
例
julia> splitpath("/home/myuser/example.jl")
4-element Array{String,1}:
"/"
"home"
"myuser"
"example.jl"