Method DeleteContent
- Namespace
- IOInfoExtensions
- Assembly
- IOInfoExtensions.dll
DeleteContent(DirectoryInfo)
Deletes all the content within the directory.
public static void DeleteContent(this DirectoryInfo directory)
Remarks
This method deletes all the files and directories within the calling DirectoryInfo
object.
It does not delete the directory itself.
Parameters
directory
DirectoryInfo- The calling
DirectoryInfo
object.
Examples
Example 1
Delete all content within a directory.
var demoRoot = new DirectoryInfo("C:\\Demo");
var children = demoRoot.GetFileSystemInfos("*", SearchOption.AllDirectories).ToList();
Console.WriteLine($"Number of Children:\n\t{children.Count}");
Console.WriteLine("Children:");
children.ForEach(x => Console.WriteLine($"\t{x.FullName}"));
demoRoot.DeleteContent();
children = demoRoot.GetFileSystemInfos("*", SearchOption.AllDirectories).ToList();
Console.WriteLine($"Number of Children after delete:\n\t{children.Count}");
Console.WriteLine($"Root Exists:\n\t{demoRoot.Exists}");
/*
Output:
Number of Children:
6
Children:
C:\Demo\ChildDir1
C:\Demo\ChildDir2
C:\Demo\ChildFile1.txt
C:\Demo\ChildFile2.txt
C:\Demo\ChildDir2\ChildFile1.txt
C:\Demo\ChildDir2\ChildFile2.txt
Number of Children after delete:
0
Root Exists:
True
*/
$directory = New-Object System.IO.DirectoryInfo 'C:\Demo'
$children = $directory.GetFileSystemInfos("*", [System.IO.SearchOption]::AllDirectories)
Write-Host "Number of Children:`n`t$($children.Count)"
Write-Host "Children:"
$children.FullName | ForEach-Object { Write-Host "`t$_" }
$directory.DeleteContent()
$children = $directory.GetFileSystemInfos("*", [System.IO.SearchOption]::AllDirectories)
Write-Host "Number of Children after delete:`n`t$($children.Count)"
Write-Host "Root Exists:`n`t$($directory.Exists)"
<#
Output:
Number of Children:
6
Children:
C:\Demo\ChildDir1
C:\Demo\ChildDir2
C:\Demo\ChildFile1.txt
C:\Demo\ChildFile2.txt
C:\Demo\ChildDir2\ChildFile1.txt
C:\Demo\ChildDir2\ChildFile2.txt
Number of Children after delete:
0
Root Exists:
True
#>
Example 2
Safely calls DeleteContent even if no content exists.
var demoRoot = new DirectoryInfo("C:\\Demo");
var children = demoRoot.GetFileSystemInfos("*", SearchOption.AllDirectories).ToList();
Console.WriteLine($"Number of Children:\n\t{children.Count}");
Console.WriteLine("Deleting content...");
demoRoot.DeleteContent();
children = demoRoot.GetFileSystemInfos("*", SearchOption.AllDirectories).ToList();
Console.WriteLine($"Number of Children after delete:\n\t{children.Count}");
Console.WriteLine("Deleting content...");
demoRoot.DeleteContent();
children = demoRoot.GetFileSystemInfos("*", SearchOption.AllDirectories).ToList();
Console.WriteLine($"Number of Children after second delete:\n\t{children.Count}");
Console.WriteLine($"Root Exists:\n\t{demoRoot.Exists}");
Console.WriteLine("Deleting Root...");
demoRoot.Delete();
demoRoot.Refresh();
Console.WriteLine($"Root Exists after delete:\n\t{demoRoot.Exists}");
Console.WriteLine("Deleting content...");
demoRoot.DeleteContent();
children = demoRoot.GetFileSystemInfos("*", SearchOption.AllDirectories).ToList();
Console.WriteLine($"Number of Children after root delete:\n\t{children.Count}");
/*
Output:
Number of Children:
6
Deleting content..."
Number of Children after delete:
0
Deleting content..."
Number of Children after second delete:
0
Root Exists:
True
Deleting Root...
Root Exists after delete:
False
Deleting content...
Number of Children after root delete:
0
*/
$directory = New-Object System.IO.DirectoryInfo 'C:\Demo'
$children = $directory.GetFileSystemInfos("*", [System.IO.SearchOption]::AllDirectories)
Write-Host "Number of Children:`n`t$($children.Count)"
Write-Host "Deleting content..."
$directory.DeleteContent()
$children = $directory.GetFileSystemInfos("*", [System.IO.SearchOption]::AllDirectories)
Write-Host "Number of Children after delete:`n`t$($children.Count)"
Write-Host "Deleting content..."
$directory.DeleteContent()
$children = $directory.GetFileSystemInfos("*", [System.IO.SearchOption]::AllDirectories)
Write-Host "Number of Children after second delete:`n`t$($children.Count)"
Write-Host "Root Exists:`n`t$($directory.Exists)"
Write-Host "Deleting Root..."
$directory.Delete()
$directory.Refresh()
Write-Host "Root Exists after delete:`n`t$($directory.Exists)"
Write-Host "Deleting content..."
$directory.DeleteContent()
$children = $directory.GetFileSystemInfos("*", [System.IO.SearchOption]::AllDirectories)
Write-Host "Number of Children after root delete:`n`t$($children.Count)"
<#
Output:
Number of Children:
6
Number of Children after delete:
0
Number of Children after second delete:
0
Root Exists:
True
Deleting Root...
Root Exists after delete:
False
Deleting content...
Number of Children after root delete:
0
#>