Bird
Raised Fist0
C Sharp (C#)programming~5 mins

File paths and Directory operations in C Sharp (C#)

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

File paths and directory operations help you find, create, and manage folders and files on your computer.

When you want to save a file in a specific folder.
When you need to check if a folder or file exists before using it.
When you want to create a new folder to organize files.
When you want to list all files inside a folder.
When you want to delete or move files and folders.
Syntax
C Sharp (C#)
using System.IO;

// Get full path
string fullPath = Path.GetFullPath(relativePath);

// Check if directory exists
bool exists = Directory.Exists(path);

// Create directory
Directory.CreateDirectory(path);

// List files in directory
string[] files = Directory.GetFiles(path);

// Delete directory
Directory.Delete(path, recursive: true);

Use Path class to work with file and folder paths safely.

Use Directory class to create, check, list, and delete folders.

Examples
This checks if the folder C:\Users\Public exists and prints true or false.
C Sharp (C#)
string path = "C:\\Users\\Public";
bool exists = Directory.Exists(path);
Console.WriteLine(exists);
This creates a new folder called MyFolder inside C:\Temp.
C Sharp (C#)
string newFolder = "C:\\Temp\\MyFolder";
Directory.CreateDirectory(newFolder);
Console.WriteLine("Folder created");
This lists all files inside the C:\Temp folder.
C Sharp (C#)
string[] files = Directory.GetFiles("C:\\Temp");
foreach (string file in files)
{
    Console.WriteLine(file);
}
This deletes the folder MyFolder and all its contents.
C Sharp (C#)
Directory.Delete("C:\\Temp\\MyFolder", recursive: true);
Console.WriteLine("Folder deleted");
Sample Program

This program checks if a folder named TestFolder exists. If not, it creates it. Then it creates a text file inside that folder and writes a message. Finally, it lists all files in the folder.

C Sharp (C#)
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string folderPath = "TestFolder";

        // Check if folder exists
        if (!Directory.Exists(folderPath))
        {
            Directory.CreateDirectory(folderPath);
            Console.WriteLine("Folder created: " + folderPath);
        }
        else
        {
            Console.WriteLine("Folder already exists: " + folderPath);
        }

        // Create a file path inside the folder
        string filePath = Path.Combine(folderPath, "example.txt");

        // Write text to the file
        File.WriteAllText(filePath, "Hello, file system!");
        Console.WriteLine("File created with text: " + filePath);

        // List files in the folder
        string[] files = Directory.GetFiles(folderPath);
        Console.WriteLine("Files in folder:");
        foreach (string file in files)
        {
            Console.WriteLine(file);
        }
    }
}
OutputSuccess
Important Notes

Use Path.Combine to join folder and file names safely without errors.

Deleting a folder with recursive: true removes all files and subfolders inside it.

Always check if a folder or file exists before trying to use it to avoid errors.

Summary

File paths tell your program where files and folders are on your computer.

Use Directory class to create, check, list, and delete folders.

Use Path class to work safely with file and folder paths.

Practice

(1/5)
1. Which C# class is used to check if a directory exists on your computer?
easy
A. Path
B. File
C. Directory
D. StreamReader

Solution

  1. Step 1: Understand the purpose of Directory class

    The Directory class provides methods to work with folders, including checking if they exist.
  2. Step 2: Identify the correct method for existence check

    Directory.Exists(path) returns true if the folder exists, which is what we need.
  3. Final Answer:

    Directory -> Option C
  4. Quick Check:

    Directory = Folder check [OK]
Hint: Use Directory class to manage folders easily [OK]
Common Mistakes:
  • Confusing File class with Directory for folders
  • Using Path class to check existence
  • Trying to read folder like a file
2. Which of the following is the correct syntax to create a new directory named "Data" in C#?
easy
A. Directory.Create("Data");
B. File.CreateDirectory("Data");
C. Path.CreateDirectory("Data");
D. Directory.CreateDirectory("Data");

Solution

  1. Step 1: Identify the correct method to create directories

    The Directory class has a method called CreateDirectory to make new folders.
  2. Step 2: Check method names and classes

    Only Directory.CreateDirectory("Data") is valid syntax; others are incorrect or belong to wrong classes.
  3. Final Answer:

    Directory.CreateDirectory("Data"); -> Option D
  4. Quick Check:

    CreateDirectory method creates folders [OK]
Hint: Use Directory.CreateDirectory to make folders [OK]
Common Mistakes:
  • Using Directory.Create instead of CreateDirectory
  • Trying to create directory with File class
  • Using Path class for folder creation
3. What will be the output of this C# code?
string folder = "C:\\Users\\Public";
string fileName = "report.txt";
string fullPath = Path.Combine(folder, fileName);
Console.WriteLine(fullPath);
medium
A. C:/Users/Public/report.txt
B. C:\Users\Public\report.txt
C. C:\Users\Publicreport.txt
D. C:\Users\Public\

Solution

  1. Step 1: Understand Path.Combine behavior

    Path.Combine joins folder and file name with the correct directory separator for Windows (\).
  2. Step 2: Check the combined string output

    The result is "C:\Users\Public\report.txt" with backslashes and a single separator between folder and file.
  3. Final Answer:

    C:\Users\Public\report.txt -> Option B
  4. Quick Check:

    Path.Combine joins paths with \ [OK]
Hint: Path.Combine joins paths with correct separators [OK]
Common Mistakes:
  • Expecting forward slashes instead of backslashes
  • Missing separator between folder and file
  • Confusing output with folder path only
4. Identify the error in this code snippet that tries to delete a directory:
string path = "C:\\Temp";
if (Directory.Exists(path))
{
    Directory.Delete(path);
    Console.WriteLine("Deleted");
}
medium
A. Directory.Delete requires a second argument to delete non-empty folders
B. Directory.Exists should be File.Exists
C. The path string is incorrectly escaped
D. Console.WriteLine cannot be used inside if

Solution

  1. Step 1: Understand Directory.Delete behavior

    Directory.Delete(path) without a second argument only deletes empty folders.
  2. Step 2: Check if folder might be non-empty

    If folder has files, Directory.Delete(path, true) is needed to delete recursively.
  3. Final Answer:

    Directory.Delete requires a second argument to delete non-empty folders -> Option A
  4. Quick Check:

    Delete non-empty folder needs recursive flag [OK]
Hint: Use Directory.Delete(path, true) for non-empty folders [OK]
Common Mistakes:
  • Assuming Directory.Delete deletes non-empty folders by default
  • Using File.Exists to check folders
  • Incorrectly escaping path strings
5. You want to list all subdirectories inside "C:\\Projects" and print their full paths. Which code snippet correctly does this?
hard
A. foreach (var dir in Directory.GetDirectories("C:\\Projects")) { Console.WriteLine(dir); }
B. foreach (var file in Directory.GetFiles("C:\\Projects")) { Console.WriteLine(file); }
C. foreach (var dir in Path.GetDirectories("C:\\Projects")) { Console.WriteLine(dir); }
D. foreach (var dir in Directory.ListDirectories("C:\\Projects")) { Console.WriteLine(dir); }

Solution

  1. Step 1: Identify method to get subdirectories

    Directory.GetDirectories(path) returns an array of folder paths inside the given directory.
  2. Step 2: Use foreach to print each directory path

    Looping over the array and printing each path is done with foreach and Console.WriteLine.
  3. Final Answer:

    foreach (var dir in Directory.GetDirectories("C:\\Projects")) { Console.WriteLine(dir); } -> Option A
  4. Quick Check:

    GetDirectories lists folders [OK]
Hint: Use Directory.GetDirectories to list folders [OK]
Common Mistakes:
  • Using GetFiles instead of GetDirectories
  • Trying to use Path class for directory listing
  • Using non-existent Directory.ListDirectories method