File.prototype.move()

Move file to a different path.

Syntax

file.move(placement uint32, target File) File file.move(placement uint32, target File, name string) File file.move(placement uint32, target File, name string, placeholder uint8) File

Warning: move returns another file. This is crucial as moving files across filesystems (think of the //temp filesystem) currently breaks the file reference.

Parameters

placement uint32

Where to place the file relative the the target. One of [os.BEFORE, os.AFTER, os.PREPEND, os.APPEND]. Additionally, you can use one or more of [os.FORCE, os.RENAME, os.TYPESAFE, os.TYPESAFE_IF_POSSIBLE]. See file placement for more details.

target File

Place the file relative to this one.

name string

File’s name. It is invalid to use special characters like spaces. Providing an empty string or omitting the name argument defaults to using the name of the source file.

placeholder uint8

Which placeholder to place the file in. Unused for placement directions os.BEFORE and os.AFTER. Also, for directions os.APPEND and os.PREPEND, you can make the system select a placeholder when using the os.TYPESAFE or os.TYPESAFE_IF_POSSIBLE flags.

Description

Move a file with its entire subtree to a different path by placing it in the filesystem relative to the target file.

Examples

Basic example, move a file before another.

Basic example, move a file before another, provide new name.

Move a file in another, do not change name, provide placeholder.

Rename a file.

Placement os.PREPEND.

Placement os.APPEND.

Placement os.BEFORE.

Placement os.AFTER.

Moving a file with the TYPESAFE flag will respect .Accept rules.

Moving a file with the TYPESAFE flag will respect .Accept rules. If the .Accept rules deny placement, the operation will fail.

It is invalid to use spaces or special chars in the name.

File reference (variable) breaks when moving across filesystem boundaries. Make sure to use the returned value of move.