---
title: "How do you recursively delete all files and folders in a directory?"  
description: "How do you recursively delete all files and folders in a directory?"  
author: "ICSM Computer"  
published: 2025-05-15  
updated: 2025-05-25  
canonical: https://www.mindstick.com/forum/161624/how-do-you-recursively-delete-all-files-and-folders-in-a-directory  
category: "c#"  
tags: ["c#", "file handling"]  
reading_time: 2 minutes  

---

# How do you recursively delete all files and folders in a directory?

How do you recursively [delete](https://www.mindstick.com/forum/33620/how-to-delete-record-from-list-in-mvc-using-ajax) all [files and folders](https://answers.mindstick.com/qa/102775/how-to-organize-files-and-folders-on-the-desktop-for-easy-access) in a [directory](https://www.mindstick.com/forum/226/how-to-get-application-directory-using-c-sharp-csharp)?

## Replies

### Reply by Anubhav Sharma

To recursively delete all **[files](https://www.mindstick.com/articles/23302/the-importance-and-advantage-of-keeping-your-important-files-on-the-cloud) and subfolders** in a directory (but **not** the root directory itself), you can use built-in APIs depending on your programming language. Here's how to do it in **C#**, **Java**, **Python**, and **Bash**:

## In C#

```cs
using System.IO;

public static void ClearDirectory(string path)
{
    if (!Directory.Exists(path))
        return;

    // Delete all files
    foreach (string file in Directory.GetFiles(path))
    {
        File.SetAttributes(file, FileAttributes.Normal); // in case of read-only
        File.Delete(file);
    }

    // Delete all subdirectories recursively
    foreach (string dir in Directory.GetDirectories(path))
    {
        Directory.Delete(dir, true); // true = recursive delete
    }
}
```

1. Keeps the root directory (`path`) intact.
2. Handles nested folders and files.
3. Use `FileAttributes.Normal` in case files are marked read-only.

## In Java

```java
import java.io.File;

public static void clearDirectory(File dir) {
    if (dir.exists() && dir.isDirectory()) {
        for (File file : dir.listFiles()) {
            if (file.isDirectory()) {
                clearDirectory(file);
                file.delete();
            } else {
                file.delete();
            }
        }
    }
}
```

Call with: `clearDirectory(new File("your/path"))`.

## In Python

```python
import os
import shutil

def clear_directory(path):
    if not os.path.isdir(path):
        return
    for filename in os.listdir(path):
        file_path = os.path.join(path, filename)
        if os.path.isdir(file_path):
            shutil.rmtree(file_path)
        else:
            os.remove(file_path)
```

- Preserves the root directory.
- Use `shutil.rmtree()` for recursive folder deletion.

## In Bash (Linux/macOS)

```plaintext
rm -rf /your/directory/path/*
```

1. Deletes all contents inside the folder, but not the folder itself.
2. Be cautious — use `echo` to test paths before running `rm -rf`.

### Tips

1. Always validate the path to avoid deleting unintended data.
2. Use logging or user confirmation for destructive operations.


---

Original Source: https://www.mindstick.com/forum/161624/how-do-you-recursively-delete-all-files-and-folders-in-a-directory

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
