Remove file extension from a file name string

You can use

string extension = System.IO.Path.GetExtension(filename);

And then remove the extension manually:

string result = filename.Substring(0, filename.Length - extension.Length);

The Path.GetFileNameWithoutExtension method gives you the filename you pass as an argument without the extension, as should be obvious from the name.


There's a method in the framework for this purpose, which will keep the full path except for the extension.

System.IO.Path.ChangeExtension(path, null);

If only file name is needed, use

System.IO.Path.GetFileNameWithoutExtension(path);

String.LastIndexOf would work.

string fileName= "abc.123.txt";
int fileExtPos = fileName.LastIndexOf(".");
if (fileExtPos >= 0 )
 fileName= fileName.Substring(0, fileExtPos);

Tags:

C#

String

Parsing