6

I have a save file dialog and i want to get only the filename entered. Equivalent for

    openfiledialog.SafeFileName;

Save file dialog has no SafeFileName Property and FileName returns both filename, path and extension. Pls how do i extract only file name.

  • 1
    Consider using search engines first... [c# retrieve only filename from file path](http://www.bing.com/search?q=c%23+retrieve+only+filename+from+file+path) gives pretty decent shot at answer. – Alexei Levenkov Aug 14 '13 at 21:23
  • @cody-gray: this should not be marked as a duplicate. The linked question is for OpenFileDialog and this is SaveFileDialog. The accepted answer for the linked duplicate will not work for SaveFileDialog. – Petter T Aug 01 '18 at 09:28

2 Answers2

18

If you want the filename with extension use Path.GetFileName(). If you want it without the extension as well use Path.GetFileNameWithoutExtension().

public void Test(string fileName)
{
    string path = Path.GetDirectoryName(fileName);
    string filename_with_ext = Path.GetFileName(fileName);
    string filename_without_ext = Path.GetFileNameWithoutExtension(fileName);
    string ext_only = Path.GetExtension(fileName);
}

See MSDN for further details, especially the Path class which has a number of useful methods:

http://msdn.microsoft.com/en-us/library/System.IO.Path_methods.aspx

http://msdn.microsoft.com/en-us/library/system.io.path.getfilename.aspx

http://msdn.microsoft.com/en-us/library/system.io.path.getfilenamewithoutextension.aspx

Lloyd
  • 27,966
  • 4
  • 78
  • 91
2

Also found another solution to my problem

    FileInfo fi = new FileInfo(saveFileDialog1.FileName);
    string text = fi.Name;