How to get directory of a file in C#

Get the 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);

Code Sample

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 the complete free book here: FileInfo in C#


Similar Articles
Mindcracker
Founded in 2003, Mindcracker is the authority in custom software development and innovation. We put best practices into action. We deliver solutions based on consumer and industry analysis.