C# Path.ChangeExtensionThis C# article uses the Path.ChangeExtension method. It removes an extension with null.
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.
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: The method changes the path string's memory representation and returns a reference to the new string data.
And: After you receive the results of Path.ChangeExtension, you must write the new file to disk or move the old one.
Program: We call File.WriteAllText to write to the disk. We change the extension of a path to have ".html" instead of a ".txt" extension.
Info: You must specify the leading period, not just three letters, on the extension string.
C# program that changes path extension
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");
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
static void Main()
string original = "file.txt";
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.
© 2007-2019 Sam Allen. Every person is special and unique. Send bug reports to firstname.lastname@example.org.