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

File paths and Directory operations in C Sharp (C#) - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to get the file name from the full path.

C Sharp (C#)
string filePath = @"C:\Users\Public\Documents\report.pdf";
string fileName = System.IO.Path.[1](filePath);
Console.WriteLine(fileName);
Drag options to blanks, or click blank then click option'
AGetDirectoryName
BGetFileName
CCombine
DGetExtension
Attempts:
3 left
💡 Hint
Common Mistakes
Using GetDirectoryName returns the folder path, not the file name.
Using GetExtension returns only the file extension.
2fill in blank
medium

Complete the code to check if a directory exists at the given path.

C Sharp (C#)
string dirPath = @"C:\Temp\Logs";
bool exists = System.IO.Directory.[1](dirPath);
Console.WriteLine(exists);
Drag options to blanks, or click blank then click option'
ACreateDirectory
BGetFiles
CExists
DDelete
Attempts:
3 left
💡 Hint
Common Mistakes
Using CreateDirectory will create the directory instead of checking.
Using GetFiles returns files inside the directory, not existence.
3fill in blank
hard

Fix the error in the code to combine two parts of a file path correctly.

C Sharp (C#)
string folder = @"C:\Users\Public";
string file = "data.txt";
string fullPath = System.IO.Path.[1](folder, file);
Console.WriteLine(fullPath);
Drag options to blanks, or click blank then click option'
AConcat
BJoin
CAppend
DCombine
Attempts:
3 left
💡 Hint
Common Mistakes
Using Join or Concat does not handle path separators correctly.
Append is not a method of Path.
4fill in blank
hard

Fill both blanks to create a dictionary with file names as keys and their extensions as values from a list of file paths.

C Sharp (C#)
var files = new List<string> { @"C:\Docs\file1.txt", @"D:\Music\song.mp3" };
var fileDict = files.ToDictionary(f => System.IO.Path.[1](f), f => System.IO.Path.[2](f));
Drag options to blanks, or click blank then click option'
AGetFileName
BGetExtension
CGetDirectoryName
DCombine
Attempts:
3 left
💡 Hint
Common Mistakes
Using GetDirectoryName instead of GetFileName for keys.
Using Combine instead of GetExtension for values.
5fill in blank
hard

Fill the blanks to create a dictionary with uppercase directory names as keys and the count of files inside as values.

C Sharp (C#)
var dirs = new List<string> { @"C:\Temp", @"D:\Data" };
var dirInfo = dirs.ToDictionary(d => System.IO.Path.[1](d).ToUpper(), d => System.IO.Directory.[2](d).Length);
Drag options to blanks, or click blank then click option'
AGetDirectoryName
BGetFiles
CGetDirectories
DGetFileName
Attempts:
3 left
💡 Hint
Common Mistakes
Using GetDirectoryName instead of GetFileName for folder name.
Using GetDirectories instead of GetFiles for counting files.

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