Use the
static methods of the Path
class:
public static void ParsePath(string path) { string root = Path.GetPathRoot(path); string dirName = Path.GetDirectoryName(path); string fullFileName = Path.GetFileName(path); string fileExt = Path.GetExtension(path); string fileNameWithoutExt = Path.GetFileNameWithoutExtension(path); StringBuilder format = new StringBuilder( ); format.Append("ParsePath of {0} breaks up into the following" + "pieces: Root: {1} "); format.Append("Directory Name: {2} Full File Name: {3} "); format.Append("File Extension: {4} File Name Without Extension: {5} "); Console.WriteLine(format.ToString( ),path,root,dirName, fullFileName,fileExt,fileNameWithoutExt); }
If the string @"c: est empfile.txt
" is passed to
this method, the output would look like this:
ParsePath of C: est empfile.txt breaks up into the following pieces: Root: C: Directory Name: C: est Full File Name: tempfile.txt File Extension: .txt File Name Without Extension: tempfile
The Path
class contains methods that can be used
to parse a given path. Using these classes is much easier and less
error-prone than writing path- and filename-parsing code. There are
five main methods used to parse a path:
GetPathRoot
, GetDirectoryName
,
GetFileName
, GetExtension
, and
GetFileNameWithoutExtension
. Each has a single
parameter, path
, which represents the path
to be parsed:
GetPathRoot
This method returns the root directory of the path. If no root is
provided in the path, such as when a relative path is used, this
method returns an empty string, not null
.
GetDirectoryName
This method returns the complete path to a file.
GetFileName
This method returns the filename, including the file extension. If no
filename is provided in the path, this method returns an empty
string, not null
.
GetExtension
This method returns the file’s extension. If no
extension is provided for the file or no file exists in the path,
this method returns an empty string, not null
.
GetFileNameWithoutExtension
This method returns the root filename without the file extension. If
no extension is provided on the file, this method returns an empty
string, not null
.
Be aware that these methods do not actually determine whether the
drives, directories, or even files exist on the system that runs
these methods. These methods are string parsers and if you pass one
of them a string in some strange format (such as
"\ZY:foo
“), it will try to do what it can with
it anyway:
ParsePath of \ZY:foo breaks up into the following pieces: Root: \ZY:foo Directory Name: Full File Name: foo File Extension: File Name Without Extension: foo
These methods will, however, throw an exception if illegal characters
are found in the path. To determine whether files or directories
exist, use the static Directory.Exists
or
File.Exists
methods.