HomeSearch

C# Path.ChangeExtension

This C# article uses the Path.ChangeExtension method. It removes an extension with null.

Path.ChangeExtension

modifies a path string. It can, for example, change a file ending in a ".txt" extension to end in the ".html" extension. This makes it unnecessary to write custom string methods.

Note: Use ChangeExtension with string arguments such as ".txt". You can use null to remove the entire extension.

Example.

First, we use the Path.ChangeExtension static method from the System.IO namespace to change the extension of a path string in the program's memory. The Path class does not actually access the disk or persist the change.Static

Instead,

it changes the path string's memory representation and returns a reference to the new string data. After you receive the results of Path.ChangeExtension, you must write the new file to disk or move the old one.
C# program that changes path extension using System.IO; class Program { static void Main() { // The file name. string path = "test.txt"; // Make sure the file exists. File.WriteAllText(path, "Tutorial file"); // Change the path name to have a new extension in memory. string changed = Path.ChangeExtension(path, ".html"); // Create file with the new extension name. File.WriteAllText(changed, "Changed file"); } } Output test.txt test.html

The program

invokes File.WriteAllText to write to the disk based on the path. The Path.ChangeExtension method usage shows how to change the extension of a path to have an ".html" extension instead of a ".txt" extension.

Info: You must specify the leading period, not just three letters, on the extension string.

Remove extension.

Next, you can remove the extension entirely by providing the null literal as the second argument to ChangeExtension. Because the Path class has no RemoveExtension method, providing null is the clearest way to remove the extension.

Tip: If you pass an empty string "" to ChangeExtension, the period is not removed.

Note: Thanks to Pierre-Luc Gelinas for writing in with a bug report on this section.

C# program that removes extensions using System; using System.IO; class Program { static void Main() { string original = "file.txt"; Console.WriteLine(Path.ChangeExtension(original, "")); Console.WriteLine(Path.ChangeExtension(original, null)); } } Output file. file

Summary.

We used the Path.ChangeExtension method in a C# program. This method receives two parameters, the first being the path string you want to change, and the second being the new extension including the leading period.

Review: The method will throw various exceptions on invalid inputs. You may want to protect your program against these conditions.

Home
Dot Net Perls
© 2007-2019 Sam Allen. All rights reserved. Written by Sam Allen, info@dotnetperls.com.