Table of Contents

Method TryDelete

Namespace
IOInfoExtensions
Assembly
IOInfoExtensions.dll

TryDelete(FileInfo)

Deletes the file if it exists.
public static void TryDelete(this FileInfo file)

Remarks

Attempts to delete the file. If the file or it's parent directory do not exist, no exception is thrown.

System.IO.FileInfo has a Delete method, but it throws an exception if the parent directory does not exist.

Parameters

file FileInfo
The FileInfo object to be deleted.

Examples

Example 1
Called on an existing file.
var file = new FileInfo("C:\\Demo\\ChildFile1.txt");

Console.WriteLine("File Information:");
Console.WriteLine(GetFileTable(new[] { file }, includeDirectory: true));

Console.WriteLine("Deleting file...");
file.TryDelete();

Console.WriteLine("File Information after delete:");
Console.WriteLine(GetFileTable(new[] { file }, includeDirectory: true));

/*
File Information:
        Directory Name           DirectoryExists Exists
        --------- ----           --------------- ------
        C:\Demo   ChildFile1.txt            True   True
Deleting file...
File Information after delete:
        Directory Name           DirectoryExists Exists
        --------- ----           --------------- ------
        C:\Demo   ChildFile1.txt            True  False
*/
$file = New-Object System.IO.FileInfo 'C:\Demo\ChildFile1.txt'

Write-Host "File Information:"
Write-Host (Get-FileTable -Files $file -IncludeDirectory)

Write-Host "Deleting file..."
$file.TryDelete()

Write-Host "File Information after delete:"
Write-Host (Get-FileTable -Files $file -IncludeDirectory)

<#
Output:
File Information:
        Directory Name           DirectoryExists Exists
        --------- ----           --------------- ------
        C:\Demo   ChildFile1.txt            True   True
Deleting file...
File Information after delete:
        Directory Name           DirectoryExists Exists
        --------- ----           --------------- ------
        C:\Demo   ChildFile1.txt            True  False
#>
Example 2
Called on a non-existing file but parent directory does exist.
var file = new FileInfo("C:\\Demo\\ChildFile4.txt");

Console.WriteLine("File Information:");
Console.WriteLine(GetFileTable(new[] { file }, includeDirectory: true));

Console.WriteLine("Deleting file...");
file.TryDelete();

Console.WriteLine("File Information after delete:");
Console.WriteLine(GetFileTable(new[] { file }, includeDirectory: true));

/*
File Information:
        Directory Name           DirectoryExists Exists
        --------- ----           --------------- ------
        C:\Demo   ChildFile4.txt            True  False
Deleting file...
File Information after delete:
        Directory Name           DirectoryExists Exists
        --------- ----           --------------- ------
        C:\Demo   ChildFile4.txt            True  False
*/
$file = New-Object System.IO.FileInfo 'C:\Demo\ChildFile4.txt'

Write-Host "File Information:"
Write-Host (Get-FileTable -Files $file -IncludeDirectory)

Write-Host "Deleting file..."
$file.TryDelete()

Write-Host "File Information after delete:"
Write-Host (Get-FileTable -Files $file -IncludeDirectory)

<#
Output:
File Information:
        Directory Name           DirectoryExists Exists
        --------- ----           --------------- ------
        C:\Demo   ChildFile4.txt            True  False
Deleting file...
File Information after delete:
        Directory Name           DirectoryExists Exists
        --------- ----           --------------- ------
        C:\Demo   ChildFile4.txt            True  False
#>
Example 3
Called on a non-existing file and parent directory does not exist.
var file = new FileInfo("C:\\Demo\\ChildDir4\\ChildFile4.txt");

Console.WriteLine("File Information:");
Console.WriteLine(GetFileTable(new[] { file }, includeDirectory: true));

Console.WriteLine("Deleting file...");
file.TryDelete();

Console.WriteLine("File Information after delete:");
Console.WriteLine(GetFileTable(new[] { file }, includeDirectory: true));

/*
File Information:
        Directory         Name           DirectoryExists Exists
        ---------         ----           --------------- ------
        C:\Demo\ChildDir4 ChildFile4.txt           False  False
Deleting file...
File Information after delete:
        Directory         Name           DirectoryExists Exists
        ---------         ----           --------------- ------
        C:\Demo\ChildDir4 ChildFile4.txt           False  False
*/
$file = New-Object System.IO.FileInfo 'C:\Demo\ChildDir4\ChildFile4.txt'

Write-Host "File Information:"
Write-Host (Get-FileTable -Files $file -IncludeDirectory)

Write-Host "Deleting file..."
$file.TryDelete()

Write-Host "File Information after delete:"
Write-Host (Get-FileTable -Files $file -IncludeDirectory)

<#
Output:
File Information:
        Directory         Name           DirectoryExists Exists
        ---------         ----           --------------- ------
        C:\Demo\ChildDir4 ChildFile4.txt           False  False
Deleting file...
File Information after delete:
        Directory         Name           DirectoryExists Exists
        ---------         ----           --------------- ------
        C:\Demo\ChildDir4 ChildFile4.txt           False  False
#>