Deleting Files or Directories: The Delete Factory

SCons User Guide 0.98.0
Prev | Chapter 12. Platform-Independent File System Manipulation | Next

# 12.2. Deleting Files or Directories: The `Delete` Factory

If you need to delete a file, then the `Delete` factory can be used in much the same way as the `Copy` factory. For example, if we want to make sure that the temporary file in our last example doesn't exist before we copy to it, we could add `Delete` to the beginning of the command list:

          Command("file.out", "file.in",
                  [
                    Delete("tempfile"),
                    Copy("tempfile", "$SOURCE"),
                    "modify tempfile",
                    Copy("$TARGET", "tempfile"),
                  ])

When then executes as follows:

          % scons -Q
          Delete("tempfile")
          Copy("tempfile", "file.in")
          modify tempfile
          Copy("file.out", "tempfile")

Of course, like all of these `Action` factories, the `Delete` factory also expands `$TARGET` and `$SOURCE` variables appropriately. For example:

          Command("file.out", "file.in",
                  [
                    Delete("$TARGET"),
                    Copy("$TARGET", "$SOURCE")
                  ])

Executes as:

          % scons -Q
          Delete("file.out")
          Copy("file.out", "file.in")

(Note, however, that you typically don't need to call the `Delete` factory explicitly in this way; by default, SCons deletes its target(s) for you before executing any action.

Prev | Home | Next
Platform-Independent File System Manipulation | Up | Moving (Renaming) Files or Directories: The `Move` Factory