FileWatching
FileWatching.poll_fd
── 関数
poll_fd(fd, timeout_s::Real=-1; readable=false, writable=false)
ファイル記述子 fd
の読み込み可能性および書き込み可能性の変更を監視します。タイムアウトは timeout_s
秒に設定されます。
二つのキーワード引数は読み込み可能性と書き込み可能性のどちらを監視するかを指定します。少なくとも一方は true
である必要があり、両方を true
にしても構いません。
返り値は readable
, writable
, timedout
という真偽値フィールドを持ったオブジェクトであり、これがポーリングの結果を与えます。
FileWatching.poll_file
── 関数
poll_file(path::AbstractString,
interval_s::Real=5.007,
timeout_s::Real=-1) -> (previous::StatStruct, current)
ファイルの変更を監視します。interval_s
秒ごとにポーリングを行い、ファイルが変更されるか timeout_s
秒が経過したら値を返します。interval_s
は長い期間であるべきです: デフォルトでは 5.007 秒です。
変更が検出されると状態オブジェクトの組 (previous, current)
が返ります。previous
の状態は必ず StatStruct
ですが、全てのフィールドがゼロ埋めされている可能性があります (ファイルが前回存在しなかった、あるいはアクセスできなかったことを表します)。
状態オブジェクト current
は StatStruct
, EOFError
, Exception
の部分型のいずれかです。EOFError
はタイムアウトしたことを表し、Exception
の部分型は stat
操作が (パスが存在しないなどの理由で) 失敗したことを表します。
ファイルが改変されたかどうかを判定するには、current isa StatStruct && mtime(prev) != mtime(current)
として変更の通知を検出してください。ただし、この操作を行うなら watch_file
を使った方が信頼性が高く効率も良いので、こちらが推奨されます (watch_file
が使えない状況も存在します)。
FileWatching.watch_file
── 関数
watch_file(path::AbstractString, timeout_s::Real=-1)
ファイルまたはディレクトリ path
を監視し、変更が起きるか timeout_s
秒が経過したら値を返します。
返り値は changed
, renamed
, timedout
という真偽値フィールドを持ったオブジェクトであり、これがファイル監視の結果を与えます。
この関数の振る舞いはプラットフォームごとに少し異なります。Node.js のドキュメントに詳しい情報があるので参照してください。
FileWatching.watch_folder
── 関数
watch_folder(path::AbstractString, timeout_s::Real=-1)
ファイルまたはディレクトリ path
を監視し、変更が起きるか timeout_s
秒が経過したら値を返します。
この関数は同じ path
に unwatch_folder
に対して呼ばれるまで path
に対する変更の監視をバックグラウンドで続けます。
返り値はオブジェクトの組です。一つ目のオブジェクトは変更されたファイルの名前であり、二つ目のオブジェクトは changed
, renamed
, timedout
という真偽値フィールドを持つイベントを表すオブジェクトです。
この関数の振る舞いはプラットフォームごとに少し異なります。Node.js のドキュメントに詳しい情報があるので参照してください。
FileWatching.unwatch_folder
── 関数
unwatch_folder(path::AbstractString)
path
に対するバックグラウンドで行う変更の追跡を停止します。他のタスクが同じパスに対して watch_folder
で待機しているときにこの関数を呼ぶことは推奨されません。予期しない結果が生じる可能性があります。