The OpenD Programming Language

setExtension

Sets or replaces an extension.

If the filename already has an extension, it is replaced. If not, the extension is simply appended to the filename. Including a leading dot in ext is optional.

If the extension is empty, this function is equivalent to stripExtension.

This function normally allocates a new string (the possible exception being the case when path is immutable and doesn't already have an extension).

  1. immutable(C1)[] setExtension(C1[] path, C2[] ext)
    immutable(C1)[]
    setExtension
    (
    C1
    C2
    )
    (
    in C1[] path
    ,
    in C2[] ext
    )
    if (
    isSomeChar!C1 &&
    !is(C1 == immutable)
    &&
    is(immutable C1 == immutable C2)
    )
  2. immutable(C1)[] setExtension(immutable(C1)[] path, const(C2)[] ext)

Parameters

path C1[]

A path name

ext C2[]

The new extension

Return Value

Type: immutable(C1)[]

A string containing the path given by path, but where the extension has been set to ext.

Examples

assert(setExtension("file", "ext") == "file.ext");
assert(setExtension("file"w, ".ext"w) == "file.ext");
assert(setExtension("file."d, "ext"d) == "file.ext");
assert(setExtension("file.", ".ext") == "file.ext");
assert(setExtension("file.old"w, "new"w) == "file.new");
assert(setExtension("file.old"d, ".new"d) == "file.new");

See Also

withExtension which does not allocate and returns a lazy range.

Meta