3 out of 4 rated this helpful - Rate this topic

Path.GetFileName Method

Returns the file name and extension of the specified path string.

Namespace:  System.IO
Assembly:  mscorlib (in mscorlib.dll)
public static string GetFileName(
	string path
)

Parameters

path
Type: System.String
The path string from which to obtain the file name and extension.

Return Value

Type: System.String
The characters after the last directory character in path. If the last character of path is a directory or volume separator character, this method returns String.Empty. If path is null, this method returns null.
Exception Condition
ArgumentException

path contains one or more of the invalid characters defined in GetInvalidPathChars.

The returned value is null if the file path is null.

The separator characters used to determine the start of the file name are DirectorySeparatorChar and AltDirectorySeparatorChar.

For a list of common I/O tasks, see Common I/O Tasks.

The following code example demonstrates the behavior of the GetFileName method on a Windows-based desktop platform.


string fileName = @"C:\mydir\myfile.ext";
string path = @"C:\mydir\";
string result;

result = Path.GetFileName(fileName);
Console.WriteLine("GetFileName('{0}') returns '{1}'", 
    fileName, result);

result = Path.GetFileName(path);
Console.WriteLine("GetFileName('{0}') returns '{1}'", 
    path, result);

// This code produces output similar to the following:
//
// GetFileName('C:\mydir\myfile.ext') returns 'myfile.ext'
// GetFileName('C:\mydir\') returns ''


.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Completely wrong info... as usual
plus it blow!s if you try to force it to figure out a true file name (of nothing) by appending a back slash at the end of the string: as in the fake example.

Brought to you by the richest man in the world. Go figure that. Maybe giving incorrect info is the way to prosper. Those mosquitoes got nothing to worry about.
how it works
Probably works by calling Split("\") on the filepath and returning the last entry in the resulting array.  Hence it returns the last folder in a filepath if there is no file specified.
Name of a file with an empty basename
If path equals ".txt", the returned file name is ".txt".
Wouldn't "" (String.Empty) be more appropriate?

Note that windows XP SP3 still considers ".txt" as a text file.

Can also return last directory in path
If Path ends in a directory name, such as "C:\Program Files\MyApps", then GetFileName returns "MyApps".