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

ファイルまたはディレクトリを移動するか、名前を変更します。

from: 名前を変更するファイルまたはディレクトリを識別する Url
to: ファイルまたはディレクトリの新しい名前を識別する Url
error-if-exists?: ファイルがすでに to に存在する場合に例外がスローされるかどうかを示すフラグで、以下のようになります。

to で指定されたオブジェクトが Directory である場合、このパラメータの値に関係なく例外がスローされます。

説明

このプロシージャは、from で指定されたファイルまたはディレクトリのファイル名を to で指定された名前に変更します。to のステム パスが from と異なる場合、ファイルまたはディレクトリは to で指定されたパスに指定された名前で移動されます。

例外のスロー

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

注意事項

一般に、このプロシージャはアトミックではありません (Curl RTE の他のインスタンスを含め、ファイルシステムの他のクライアントから見た場合)。ただし、Win95、Win98、WinME を除くローカル ファイルシステム内のファイルの名前を変更する場合、このプロシージャはアトミックです。Win95、Win98、WinME を除くローカル ファイルシステム内のファイルの名前を変更する場合は、以下のようになります。



from がシンボリック リンクを参照する場合、そのリンクは名前が変更されます。to がシンボリック リンクを参照する場合、そのリンクは上書きされます。

error-if-exists? = false を指定してもこのプロシージャが ExistingFileException をスローしないとは限りません。たとえば、別のプロセスがタイミング悪く to で指定されたオブジェクトを作成した場合などにはエラーがスローされます。

また、error-if-exists? = false の場合は、tofrom で置き換えられずに削除される可能性もあります。このような状況は、たとえば、別のプロセスが fromfrom.parent-dir、または to.parent-dir に対してファイルシステムの保護設定をタイミング悪く変更しているときに起こる可能性があります。