Function std.path.setExtension
Sets or replaces an extension.
						
				immutable(Unqual!C1)[] setExtension(C1, C2)
				(
				
				  in C1[] path,
				
				  in C2[] ext
				
				)
				
				if (isSomeChar!C1 && !is(C1 == immutable) && is(Unqual!C1 == Unqual!C2));
				
				
				immutable(C1)[] setExtension(C1, C2)
				(
				
				  immutable(C1)[] path,
				
				  const(C2)[] ext
				
				)
				
				if (isSomeChar!C1 && is(Unqual!C1 == Unqual!C2));
						
					
				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).
Parameters
| Name | Description | 
|---|---|
| path | A path name | 
| ext | The new extension | 
Returns
A string containing the path given by path, but where
    the extension has been set to ext.
See Also
withExtension which does not allocate and returns a lazy range.
Example
writeln(setExtension("file", "ext")); // "file.ext"
writeln(setExtension("file"w, ".ext"w)); // "file.ext"
writeln(setExtension("file."d, "ext"d)); // "file.ext"
writeln(setExtension("file.", ".ext")); // "file.ext"
writeln(setExtension("file.old"w, "new"w)); // "file.new"
writeln(setExtension("file.old"d, ".new"d)); // "file.new"
Authors
Lars Tandle Kyllingstad, Walter Bright, Grzegorz Adam Hankiewicz, Thomas Kühne, Andrei Alexandrescu