withDefaultExtension

Set the extension of path to ext if path doesn't have one.

  1. auto withDefaultExtension(R path, C[] ext)
    withDefaultExtension
    (
    R
    C
    )
    (,
    C[] ext
    )
    if (
    isRandomAccessRange!R &&
    hasSlicing!R
    &&
    hasLength!R
    &&
    isSomeChar!(ElementType!R)
    &&
    &&
    )
  2. auto withDefaultExtension(C1[] path, C2[] ext)

Parameters

path R

filespec as string or range

ext C[]

extension, may have leading '.'

Return Value

Type: auto

range with the result

Examples

import std.array;
assert(withDefaultExtension("file", "ext").array == "file.ext");
assert(withDefaultExtension("file"w, ".ext").array == "file.ext"w);
assert(withDefaultExtension("file.", "ext").array == "file.");
assert(withDefaultExtension("file", "").array == "file.");

import std.utf : byChar, byWchar;
assert(withDefaultExtension("file".byChar, "ext").array == "file.ext");
assert(withDefaultExtension("file"w.byWchar, ".ext").array == "file.ext"w);
assert(withDefaultExtension("file.".byChar, "ext"d).array == "file.");
assert(withDefaultExtension("file".byChar, "").array == "file.");

Meta