C# Tutorial

C# String

C# Array

C# Flow Control

C# Class and Object

C# Inheritance

C# Interface

C# Collection

C# Generic

C# File I/O

C# Delegate and Event

C# Exception

C# Process and Thread

C# ADO.NET Database Operations

C# Directoryinfo Class: Folder Operations

In C#, the DirectoryInfo class, part of the System.IO namespace, provides an object-oriented way to work with directories (folders). In this tutorial, we'll cover the most common folder operations using the DirectoryInfo class.

  • Importing the System.IO namespace:

To use the DirectoryInfo class, you need to import the System.IO namespace:

using System.IO;
  • Creating a DirectoryInfo object:

To create a DirectoryInfo object, instantiate it with the directory path as a parameter:

string folderPath = @"C:\MyNewFolder";
DirectoryInfo directoryInfo = new DirectoryInfo(folderPath);
  • Creating a directory:

To create a new directory, call the Create() method:

directoryInfo.Create();
  • Checking if a directory exists:

The DirectoryInfo class doesn't have an Exists() method. To check if a directory exists, use the Exists property:

bool directoryExists = directoryInfo.Exists;
  • Getting a list of files and subdirectories:

To get an array of FileInfo and DirectoryInfo objects representing files and subdirectories in a directory, use the GetFiles() and GetDirectories() methods:

FileInfo[] files = directoryInfo.GetFiles();
DirectoryInfo[] subdirectories = directoryInfo.GetDirectories();
  • Moving a directory:

To move a directory to a new location, call the MoveTo() method:

string destinationPath = @"C:\MyNewFolderMoved";
directoryInfo.MoveTo(destinationPath);
  • Deleting a directory:

To delete a directory, call the Delete() method. Note that by default, this method throws an exception if the directory is not empty. To delete a non-empty directory, pass true as the first parameter:

directoryInfo.Delete(true);

Here's a complete example demonstrating folder operations using the DirectoryInfo class in C#:

using System;
using System.IO;

namespace DirectoryInfoTutorial
{
    class Program
    {
        static void Main(string[] args)
        {
            string folderPath = @"C:\MyNewFolder";
            DirectoryInfo directoryInfo = new DirectoryInfo(folderPath);

            // Creating a directory
            Console.WriteLine("Creating directory...");
            directoryInfo.Create();

            // Checking if a directory exists
            bool directoryExists = directoryInfo.Exists;
            Console.WriteLine($"Directory exists: {directoryExists}");

            // Getting a list of files and subdirectories
            FileInfo[] files = directoryInfo.GetFiles();
            DirectoryInfo[] subdirectories = directoryInfo.GetDirectories();
            Console.WriteLine("Files and subdirectories:");
            foreach (FileInfo file in files)
            {
                Console.WriteLine(file.Name);
            }
            foreach (DirectoryInfo subdir in subdirectories)
            {
                Console.WriteLine(subdir.Name);
            }

            // Moving a directory
            Console.WriteLine("Moving directory...");
            string destinationPath = @"C:\MyNewFolderMoved";
            directoryInfo.MoveTo(destinationPath);

            // Deleting a directory
            Console.WriteLine("Deleting directory...");
            directoryInfo.Delete(true);

            // Verifying the directory was deleted
            bool directoryDeleted = !directoryInfo.Exists;
            Console.WriteLine($"Directory deleted: {directoryDeleted}");
        }
    }
}

This example demonstrates how to perform common folder operations using the DirectoryInfo class in C#.

  1. C# DirectoryInfo class example:

    • Description: The DirectoryInfo class in C# is part of the System.IO namespace and provides instance methods and properties for working with directories.
    • Code:
      using System;
      using System.IO;
      
      class Program
      {
          static void Main()
          {
              // Example using DirectoryInfo class
              string directoryPath = @"C:\ExampleDirectory";
              DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
      
              if (directoryInfo.Exists)
              {
                  Console.WriteLine("Directory exists!");
              }
              else
              {
                  Console.WriteLine("Directory does not exist.");
              }
          }
      }
      
  2. Creating a directory with DirectoryInfo in C#:

    • Description: The DirectoryInfo.Create method is used to create a new directory.
    • Code:
      string newDirectoryPath = @"C:\NewDirectory";
      DirectoryInfo newDirectoryInfo = new DirectoryInfo(newDirectoryPath);
      newDirectoryInfo.Create();
      
  3. Checking if a directory exists using DirectoryInfo in C#:

    • Description: The DirectoryInfo.Exists property is used to check if a directory exists.
    • Code:
      string directoryPath = @"C:\ExistingDirectory";
      DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
      
      if (directoryInfo.Exists)
      {
          Console.WriteLine("Directory exists!");
      }
      
  4. Listing files in a directory with C# DirectoryInfo class:

    • Description: The DirectoryInfo.GetFiles method is used to retrieve an array of file names in a directory.
    • Code:
      string directoryPath = @"C:\SomeDirectory";
      DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
      FileInfo[] files = directoryInfo.GetFiles();
      
      foreach (FileInfo file in files)
      {
          Console.WriteLine(file.FullName);
      }
      
  5. Deleting a directory with DirectoryInfo in C#:

    • Description: The DirectoryInfo.Delete method is used to delete a directory.
    • Code:
      string directoryToDelete = @"C:\DirectoryToDelete";
      DirectoryInfo directoryInfoToDelete = new DirectoryInfo(directoryToDelete);
      directoryInfoToDelete.Delete();
      
  6. C# DirectoryInfo class for moving folders:

    • Description: The DirectoryInfo.MoveTo method allows you to move a directory to a new location.
    • Code:
      string sourceDirectory = @"C:\SourceDirectory";
      string destinationDirectory = @"D:\DestinationDirectory";
      DirectoryInfo sourceDirectoryInfo = new DirectoryInfo(sourceDirectory);
      sourceDirectoryInfo.MoveTo(destinationDirectory);
      
  7. Getting directory information with C# DirectoryInfo:

    • Description: The DirectoryInfo class provides properties for obtaining information about a directory.
    • Code:
      string directoryPath = @"C:\SomeDirectory";
      DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
      
      Console.WriteLine($"Directory Name: {directoryInfo.Name}");
      Console.WriteLine($"Creation Time: {directoryInfo.CreationTime}");
      
  8. Renaming a directory using DirectoryInfo in C#:

    • Description: The DirectoryInfo.MoveTo method can be used to rename a directory by moving it to a new location with a different name.
    • Code:
      string oldDirectoryName = @"C:\OldName";
      string newDirectoryName = @"C:\NewName";
      DirectoryInfo oldDirectoryInfo = new DirectoryInfo(oldDirectoryName);
      oldDirectoryInfo.MoveTo(newDirectoryName);