How to Get Folder of a File in C#

How to get the folder name of a file in C# and .NET.
  • 5597
Get Directory Name of a File
The DirectoryName property of the FileInfo class returns the name of the directory of a file. The following code snippet returns the directory of a file.
string directoryName = fi.DirectoryName;
Console.WriteLine("Directory Name: {0}", directoryName);
Here is a complete sample.

// Full file name

string fileName = @"C:\Temp\MaheshTXFI.txt";

FileInfo fi = new FileInfo(fileName);  

// Create a new file

using (FileStream fs = fi.Create())


    Byte[] txt = new UTF8Encoding(true).GetBytes("New file.");

    fs.Write(txt, 0, txt.Length);

    Byte[] author = new UTF8Encoding(true).GetBytes("Author Mahesh Chand");

    fs.Write(author, 0, author.Length);


// Get File Name

string justFileName = fi.Name;

Console.WriteLine("File Name: {0}", justFileName);

// Get file name with full path

string fullFileName = fi.FullName;

Console.WriteLine("File Name: {0}", fullFileName);

// Get file extension

string extn = fi.Extension;

Console.WriteLine("File Extension: {0}", extn);

// Get directory name

string directoryName = fi.DirectoryName;

Console.WriteLine("Directory Name: {0}", directoryName);

// File Exists ?

bool exists = fi.Exists;

Console.WriteLine("File Exists: {0}", exists);

if (fi.Exists)


    // Get file size

    long size = fi.Length;

    Console.WriteLine("File Size in Bytes: {0}", size);

    // File ReadOnly ?

    bool IsReadOnly = fi.IsReadOnly;

    Console.WriteLine("Is ReadOnly: {0}", IsReadOnly);

    // Creation, last access, and last write time

    DateTime creationTime = fi.CreationTime;

    Console.WriteLine("Creation time: {0}", creationTime);

    DateTime accessTime = fi.LastAccessTime;

    Console.WriteLine("Last access time: {0}", accessTime);

    DateTime updatedTime = fi.LastWriteTime;

    Console.WriteLine("Last write time: {0}", updatedTime);


Free Book
Download complete free book here: FileInfo in C#
© 2020 DotNetHeaven. All rights reserved.