MSX-DOS2 FCS 03 58

From Z80 Machines Wiki
Jump to: navigation, search

3.58ファイル名またはサブディレクトリ名の変更(4EH)

パラメータ:C = 4EH(_RENAME)

DE =ドライブ/パス/ファイルASCIIZ文字列

またはfileinfoブロックポインタ

HL =新しいファイル名ASCIIZ文字列

結果:A =エラー


この関数は、drive / path / file文字列またはfileinfoブロックで指定されたオブジェクト(ファイルまたはサブディレクトリ)の名前を、HLが指す文字列内の新しい名前に変更します。新しいファイル名の文字列には、ドライブ名やディレクトリパスを含めないでください(「.IFNM」エラーがある場合)。 "CON"などのデバイス名を指定した場合、エラーは返されませんが、デバイスの名前は実際には変更されません。

グローバルファイル名文字はdrive / path / file文字列には使用できないため、この関数で名前を変更できるのは1つのオブジェクトだけです。ただし、グローバルファイル名文字は、HLで渡される新しいファイル名で使用でき、それらが出現する場所では、既存のファイル名文字は変更されずに残ります。不正なファイル名が作成されないようにチェックが行われます。たとえば、「XYZ」という名前のファイルは、新しいファイル名文字列「???? A」で名前を変更することはできません。この場合、 "。IFNM"エラーが返されます。

新しいファイル名のエントリがすでに存在する場合は、重複したファイル名が作成されないようにするためにエラー( ".DUPF")が返されます。 「。」サブディレクトリ内の。および ".."エントリの名前を変更することはできず( ".IDOT"エラー)、ルートディレクトリも変更できません(名前がありません)。読み取り専用ファイルの名前は変更できますが、ファイルハンドルが開いている場合( ".FOPEN"エラー)、ファイルの名前は変更できません。 DEがfileinfoブロックを指している場合、これはファイルの新しい名前で更新されないことに注意してください。そのため、この関数を呼び出した後は、fileinfoブロックを使用する際に注意が必要です。