How to get directory of a file in C#

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#