copy (プロシージャ)
public {copy
from:Url,
to:Url,
error-if-exists?:bool = true,
recurse?:bool = false
}:void
パッケージ: CURL.IO.FILE

ファイルシステムのファイルまたはディレクトリをコピーします。

from: コピー元のファイルまたはディレクトリの場所を指定する Url
to: ファイルのコピー先の場所を指定する Url
error-if-exists?: ファイルがすでに to に存在する場合に例外がスローされるかどうかを示すフラグで、以下のようになります。

to で指定されたオブジェクトが Directory である場合、error-if-exists? の値に関係なく例外がスローされます。
recurse?: ディレクトリの内容をコピーするかどうかを示すフラグで、以下のようになります。

例外のスロー

PermissionDeniedFileException — ユーザーが from の読み取りまたは to の作成のための十分なアクセス権を持っていない場合。
MissingFileExceptionto のステム パスにディレクトリが存在しない場合、または from にファイルまたはディレクトリが存在しない場合。
ExistingFileExceptionto がすでに存在し、 error-if-exists? = true の場合。
FileException — この操作の実行中に何らかの障害が発生した場合は、別の種類の FileException がスローされる可能性があります。

注意事項

このプロシージャはアトミックではありません。 error-if-exists? = false を指定してもこのプロシージャが ExistingFileException をスローしないとは限りません。たとえば、別のプロセスがタイミング悪くファイルシステムに to で指定したオブジェクトを作成した場合などにはエラーがスローされます。 また error-if-exists? = false の場合は、tofrom で置き換えられずに削除される可能性もあります。このような状況は、たとえば、別のプロセスが fromfrom.parent-dir 、または to.parent-dir に対するファイルシステムの保護設定をタイミング悪く変更しているときに起こる可能性があります。 この問題は、 from ディレクトリを読み取る場合も該当します。 from に含まれるファイルを部分的に to にコピーできますが、その後に障害(不適当なファイルシステム保護設定などが原因)が検出されると、 to 内のコピーが不完全なまま残される場合があります。